#!/usr/bin/env ruby
#
# Genghis v2.3.11
#
# The single-file MongoDB admin app
#
# http://genghisapp.com
#
# @author Justin Hileman <justin@justinhileman.info>
#
module Genghis
  VERSION = "2.3.11"
end
GENGHIS_VERSION = Genghis::VERSION

require 'mongo'
require 'json'

module Genghis
  class JSON
    class << self
      def as_json(object)
        enc(object, Array, Hash, BSON::OrderedHash, Genghis::Models::Query)
      end

      def encode(object)
        as_json(object).to_json
      end

      def decode(str)
        dec(::JSON.parse(str))
      end

      private

      def enc(o, *a)
        o = o.to_s if o.is_a? Symbol
        fail "invalid: #{o.inspect}" unless a.empty? or a.include? o.class
        case o
        when Genghis::Models::Query then enc(o.as_json)
        when Array then o.map { |e| enc(e) }
        when Hash then enc_hash(o.clone)
        when Time then thunk('ISODate', enc_time(o))
        when Regexp then thunk('RegExp', {'$pattern' => o.source, '$flags' => enc_re_flags(o.options)})
        when BSON::ObjectId then thunk('ObjectId', o.to_s)
        when BSON::DBRef then db_ref(o)
        when BSON::Binary then thunk('BinData', {'$subtype' => o.subtype, '$binary' => enc_bin_data(o)})
        else o
        end
      end

      def enc_time(o)
        # strip trailing microsecond zeros, because wtf.
        o.strftime('%FT%T.%LZ').sub(/\.?[0]{0,3}Z$/, 'Z')
      end

      def enc_hash(o)
        o.keys.each { |k| o[k] = enc(o[k]) }
        o
      end

      def thunk(name, value)
        {'$genghisType' => name, '$value' => value }
      end

      def enc_re_flags(opt)
        ((opt & Regexp::MULTILINE != 0) ? 'm' : '') + ((opt & Regexp::IGNORECASE != 0) ? 'i' : '')
      end

      def enc_bin_data(o)
        Base64.strict_encode64(o.to_s)
      end

      def db_ref(o)
        o = o.to_hash
        {'$ref' => o['$ns'], '$id' => enc(o['$id'])}
      end

      def dec(o)
        case o
        when Array then o.map { |e| dec(e) }
        when Hash then
          case o['$genghisType']
          when 'ObjectId' then mongo_object_id o['$value']
          when 'ISODate'  then mongo_iso_date  o['$value']
          when 'RegExp'   then mongo_reg_exp   o['$value']
          when 'BinData'  then mongo_bin_data  o['$value']
          else o.merge(o) { |k, v| dec(v) }
          end
        else o
        end
      end

      def dec_re_flags(flags)
        f = flags || ''
        (f.include?('m') ? Regexp::MULTILINE : 0) | (f.include?('i') ? Regexp::IGNORECASE : 0)
      end

      def mongo_object_id(value)
        value.nil? ? BSON::ObjectId.new : BSON::ObjectId.from_string(value)
      end

      def mongo_iso_date(value)
        return Time.now if value.nil?

        # because Rails overrides DateTime.to_time to return a DateTime. Grr.
        d = DateTime.parse(value)
        Time.utc(d.year, d.month, d.day, d.hour, d.min, d.sec + d.sec_fraction)
      end

      def mongo_reg_exp(value)
        Regexp.new(value['$pattern'], dec_re_flags(value['$flags']))
      end

      def mongo_bin_data(value)
        BSON::Binary.new(Base64.decode64(value['$binary']), value['$subtype'])
      end

    end
  end
end
require 'sinatra'

module Genghis
  class Exception < ::Exception
  end

  class MalformedDocument < Exception
    def http_status; 400 end

    def initialize(msg=nil)
      @msg = msg
    end

    def message
      @msg || 'Malformed document'
    end
  end

  class NotFound < Exception
    def http_status; 404 end

    def message
      'Not found'
    end
  end

  class AlreadyExists < Exception
    def http_status; 400 end
  end

  class ServerNotFound < NotFound
    def initialize(name)
      @name = name
    end

    def message
      "Server '#{@name}' not found"
    end
  end

  class ServerAlreadyExists < AlreadyExists
    def initialize(name)
      @name = name
    end

    def message
      "Server '#{@name}' already exists"
    end
  end

  class DatabaseNotFound < NotFound
    def initialize(server, name)
      @server = server
      @name   = name
    end

    def message
      "Database '#{@name}' not found on '#{@server.name}'"
    end
  end

  class DatabaseAlreadyExists < AlreadyExists
    def initialize(server, name)
      @server = server
      @name   = name
    end

    def message
      "Database '#{@name}' already exists on '#{@server.name}'"
    end
  end


  class CollectionNotFound < NotFound
    def initialize(database, name)
      @database = database
      @name     = name
    end

    def message
      "Collection '#{@name}' not found in '#{@database.name}'"
    end
  end

  class GridFSNotFound < CollectionNotFound
    def message
      "GridFS collection '#{@name}' not found in '#{@database.name}'"
    end
  end

  class CollectionAlreadyExists < AlreadyExists
    def initialize(database, name)
      @database = database
      @name     = name
    end

    def message
      "Collection '#{@name}' already exists in '#{@database.name}'"
    end
  end

  class DocumentNotFound < NotFound
    def initialize(collection, doc_id)
      @collection = collection
      @doc_id     = doc_id
    end

    def message
      "Document '#{@doc_id}' not found in '#{@collection.name}'"
    end
  end

  class GridFileNotFound < DocumentNotFound
    def message
      "GridFS file '#{@doc_id}' not found"
    end
  end
end
require 'base64'

module Genghis
  module Models
    class Collection
      def initialize(collection)
        @collection = collection
      end

      def name
        @collection.name
      end

      def drop!
        @collection.drop
      end

      def insert(data)
        begin
          id = @collection.insert data
        rescue Mongo::OperationFailure => e
          # going out on a limb here and assuming all of these are malformed...
          raise Genghis::MalformedDocument.new(e.result['errmsg'])
        end

        @collection.find_one('_id' => id)
      end

      def remove(doc_id)
        query = {'_id' => thunk_mongo_id(doc_id)}
        raise Genghis::DocumentNotFound.new(self, doc_id) unless @collection.find_one(query)
        @collection.remove query
      end

      def update(doc_id, data)
        begin
          document = @collection.find_and_modify \
            :query  => {'_id' => thunk_mongo_id(doc_id)},
            :update => data,
            :new    => true
        rescue Mongo::OperationFailure => e
          # going out on a limb here and assuming all of these are malformed...
          raise Genghis::MalformedDocument.new(e.result['errmsg'])
        end

        raise Genghis::DocumentNotFound.new(self, doc_id) unless document
        document
      end

      def documents(query={}, page=1)
        Query.new(@collection, query, page)
      end

      def [](doc_id)
        doc = @collection.find_one('_id' => thunk_mongo_id(doc_id))
        raise Genghis::DocumentNotFound.new(self, doc_id) unless doc
        doc
      end

      def put_file(data)
        file = data.delete('file') or raise Genghis::MalformedDocument.new 'Missing file.'

        opts = {}
        data.each do |k, v|
          case k
          when 'filename'
            opts[:filename] = v
          when 'metadata'
            opts[:metadata] = v unless v.empty?
          when '_id'
            opts[:_id]      = v
          when 'contentType'
            opts[:content_type] = v
          else
            raise Genghis::MalformedDocument.new "Unexpected property: '#{k}'"
          end
        end

        id = grid.put(decode_file(file), opts)
        self[id]
      end

      def get_file(doc_id)
        begin
          doc = grid.get(thunk_mongo_id(doc_id))
        rescue Mongo::GridFileNotFound
          raise Genghis::GridFileNotFound.new(self, doc_id)
        end

        raise Genghis::DocumentNotFound.new(self, doc_id) unless doc
        raise Genghis::GridFileNotFound.new(self, doc_id) unless is_grid_file?(doc)

        doc
      end

      def delete_file(doc_id)
        begin
          grid.get(thunk_mongo_id(doc_id))
        rescue Mongo::GridFileNotFound
          raise Genghis::GridFileNotFound.new(self, doc_id)
        end

        res = grid.delete(thunk_mongo_id(doc_id))

        raise Genghis::Exception.new res['err'] unless res['ok']
      end

      def as_json(*)
        {
          :id      => @collection.name,
          :name    => @collection.name,
          :count   => @collection.count,
          :indexes => @collection.index_information.values,
          :stats   => @collection.stats,
        }
      end

      def to_json(*)
        as_json.to_json
      end

      private

      def thunk_mongo_id(doc_id)
        if doc_id.is_a? BSON::ObjectId
          doc_id
        elsif (doc_id[0..0] == '~')
          doc_id = Base64.decode64(doc_id[1..-1])
          ::Genghis::JSON.decode("{\"_id\":#{doc_id}}")['_id']
        else
          doc_id =~ /^[a-f0-9]{24}$/i ? BSON::ObjectId(doc_id) : doc_id
        end
      end

      def is_grid_collection?
        name.end_with? '.files'
      end

      def grid
        Genghis::GridFSNotFound.new(@collection.db, name) unless is_grid_collection?
        @grid ||= Mongo::Grid.new(@collection.db, name.sub(/\.files$/, ''))
      end

      def is_grid_file?(doc)
        !! doc['chunkSize']
      end

      def decode_file(data)
        unless data =~ /^data:[^;]+;base64,/
          raise Genghis::MalformedDocument.new 'File must be a base64 encoded data: URI'
        end

        Base64.strict_decode64(data.sub(/^data:[^;]+;base64,/, '').strip)
      rescue ArgumentError
        raise Genghis::MalformedDocument.new 'File must be a base64 encoded data: URI'
      end
    end
  end
end
module Genghis
  module Models
    class Database
      def initialize(client, name)
        @client = client
        @name   = name
      end

      def name
        database.name
      end

      def drop!
        database.connection.drop_database(database.name)
      end

      def create_collection(coll_name)
        raise Genghis::CollectionAlreadyExists.new(self, coll_name) if database.collection_names.include? coll_name
        database.create_collection coll_name rescue raise Genghis::MalformedDocument.new('Invalid collection name')
        Collection.new(database[coll_name])
      end

      def collections
        @collections ||= database.collections.map { |c| Collection.new(c) unless system_collection?(c) }.compact
      end

      def [](coll_name)
        raise Genghis::CollectionNotFound.new(self, coll_name) unless database.collection_names.include? coll_name
        Collection.new(database[coll_name])
      end

      def as_json(*)
        {
          :id          => database.name,
          :name        => database.name,
          :count       => collections.count,
          :collections => collections.map { |c| c.name },
          :stats       => stats,
        }
      rescue Mongo::InvalidNSName => e
        {
          :id    => @name,
          :name  => @name,
          :error => e.message,
        }
      end

      def to_json(*)
        as_json.to_json
      end

      private

      def database
        @database ||= @client[@name]
      end

      def info
        @info ||= begin
          name = database.name
          database.connection['admin'].command({:listDatabases => true})['databases'].detect do |db|
            db['name'] == name
          end
        end
      end

      def stats
        @stats ||= database.command({:dbStats => true})
      end

      def system_collection?(coll)
        [
          Mongo::DB::SYSTEM_NAMESPACE_COLLECTION,
          Mongo::DB::SYSTEM_INDEX_COLLECTION,
          Mongo::DB::SYSTEM_PROFILE_COLLECTION,
          Mongo::DB::SYSTEM_USER_COLLECTION,
          Mongo::DB::SYSTEM_JS_COLLECTION
        ].include?(coll.name)
      end
    end
  end
end
module Genghis
  module Models
    class Query
      PAGE_LIMIT = 50

      def initialize(collection, query={}, page=1)
        @collection = collection
        @page       = page
        @query      = query
      end

      def as_json(*)
        {
          :count     => documents.count,
          :page      => @page,
          :pages     => pages,
          :per_page  => PAGE_LIMIT,
          :offset    => offset,
          :documents => documents.to_a
        }
      end

      def to_json(*)
        as_json.to_json
      end

      private

      def pages
        [0, (documents.count / PAGE_LIMIT.to_f).ceil].max
      end

      def offset
        PAGE_LIMIT * (@page - 1)
      end

      def documents
        @documents ||= @collection.find(@query, :limit => PAGE_LIMIT, :skip  => offset)
      end

    end
  end
end
module Genghis
  module Models
    class Server
      attr_reader   :name
      attr_reader   :dsn
      attr_reader   :error
      attr_accessor :default

      @default = false

      def initialize(dsn)
        dsn = 'mongodb://'+dsn unless dsn.include? '://'

        begin
          dsn, uri = get_dsn_and_uri(extract_extra_options(dsn))

          # name this server something useful
          name = uri.host

          if user = uri.auths.map { |a| a[:username] || a['username'] }.first
            name = "#{user}@#{name}"
          end

          name = "#{name}:#{uri.port}" unless uri.port == 27017

          if db = uri.auths.map { |a| a[:db_name] || a['db_name'] }.first
            unless db == 'admin'
              name = "#{name}/#{db}"
              @db = db
            end
          end

          @name = name
        rescue Mongo::MongoArgumentError
          @error = 'Malformed server DSN'
          @name  = dsn
        end
        @dsn = dsn
      end

      def create_database(db_name)
        raise Genghis::DatabaseAlreadyExists.new(self, db_name) if db_exists? db_name
        begin
          client[db_name]['__genghis_tmp_collection__'].drop
        rescue Mongo::InvalidNSName
          raise Genghis::MalformedDocument.new('Invalid database name')
        end
        Database.new(client, db_name)
      end

      def databases
        info['databases'].map { |db| Database.new(client, db['name']) }
      end

      def [](db_name)
        raise Genghis::DatabaseNotFound.new(self, db_name) unless db_exists? db_name
        Database.new(client, db_name)
      end

      def as_json(*)
        json = {
          :id       => @name,
          :name     => @name,
          :editable => !@default,
        }

        if @error
          json.merge!({:error => @error})
        else
          begin
            client
            info
          rescue Mongo::AuthenticationError => e
            json.merge!({:error => "Authentication error: #{e.message}"})
          rescue Mongo::ConnectionFailure => e
            json.merge!({:error => "Connection error: #{e.message}"})
          rescue Mongo::OperationFailure => e
            json.merge!({:error => "Connection error: #{e.result['errmsg']}"})
          else
            json.merge!({
              :size      => info['totalSize'].to_i,
              :count     => info['databases'].count,
              :databases => info['databases'].map { |db| db['name'] },
            })
          end
        end

        json
      end

      def to_json(*)
        as_json.to_json
      end

      private

      def get_dsn_and_uri(dsn)
        [dsn, ::Mongo::URIParser.new(dsn)]
      rescue Mongo::MongoArgumentError => e
        raise e unless e.message.include? "MongoDB URI must include username"
        # We'll try one more time...
        dsn = dsn.sub(%r{/?$}, '/admin')
        [dsn, ::Mongo::URIParser.new(dsn)]
      end

      def extract_extra_options(dsn)
        host, opts = dsn.split('?', 2)

        keep  = {}
        @opts = {}
        Rack::Utils.parse_query(opts).each do |opt, value|
          case opt
          when 'replicaSet'
            keep[opt] = value
          when 'connectTimeoutMS'
            unless value =~ /^\d+$/
              raise Mongo::MongoArgumentError.new("Unexpected #{opt} option value: #{value}")
            end
            @opts[:connect_timeout] = (value.to_f / 1000)
          when 'ssl'
            unless value == 'true'
              raise Mongo::MongoArgumentError.new("Unexpected #{opt} option value: #{value}")
            end
            @opts[opt.to_sym] = true
          else
            raise Mongo::MongoArgumentError.new("Unknown option #{opt}")
          end
        end
        opts = Rack::Utils.build_query keep
        opts.empty? ? host : [host, opts].join('?')
      end

      def client
        @client ||= Mongo::MongoClient.from_uri(@dsn, {:connect_timeout => 1, :w => 1}.merge(@opts))
      rescue OpenSSL::SSL::SSLError => e
        raise Mongo::ConnectionFailure.new('SSL connection error')
      rescue StandardError => e
        raise Mongo::ConnectionFailure.new(e.message)
      end

      def info
        @info ||= begin
          if @db.nil?
            client['admin'].command({:listDatabases => true})
          else
            stats = client[@db].command(:dbStats => true)
            {
              'databases' => [{'name' => @db}],
              'totalSize' => stats['fileSize']
            }
          end
        end
      end

      def db_exists?(db_name)
        if @db.nil?
          client.database_names.include? db_name
        else
          @db == db_name
        end
      end
    end
  end
end
require 'mongo'
require 'json'

module Genghis
  module Helpers
    PAGE_LIMIT = 50


    ### Genghis JSON responses ###

    def genghis_json(doc, *args)
      json(::Genghis::JSON.as_json(doc), *args)
    end


    ### Misc request parsing helpers ###

    def query_param
      ::Genghis::JSON.decode(params.fetch('q', '{}'))
    end

    def page_param
      params.fetch('page', 1).to_i
    end

    def request_json
      @request_json ||= ::JSON.parse request.body.read
    rescue
      raise Genghis::MalformedDocument.new
    end

    def request_genghis_json
      @request_genghis_json ||= ::Genghis::JSON.decode request.body.read
    rescue
      raise Genghis::MalformedDocument.new
    end

    def thunk_mongo_id(id)
      id =~ /^[a-f0-9]{24}$/i ? BSON::ObjectId(id) : id
    end


    ### Seemed like a good place to put this ###

    def server_status_alerts
      require 'rubygems'

      alerts = []

      if check_json_ext?
        msg = <<-MSG.strip.gsub(/\s+/, " ")
          <h4>JSON C extension not found.</h4>
          Falling back to the pure Ruby variant. <code>gem install json</code> for better performance.
        MSG
        alerts << {:level => 'warning', :msg => msg}
      end

      # It would be awesome if we didn't have to resort to this :)
      if Gem::Specification.respond_to? :find_all

        if check_bson_ext?
          Gem.refresh

          installed = Gem::Specification.find_all { |s| s.name == 'mongo' }.map { |s| s.version }.sort.last
          if Gem::Specification.find_all { |s| s.name == 'bson_ext' && s.version == installed }.empty?
            msg = <<-MSG.strip.gsub(/\s+/, " ")
              <h4>MongoDB driver C extension not found.</h4>
              Install this extension for better performance: <code>gem install bson_ext -v #{installed}</code>
            MSG
            alerts << {:level => 'warning', :msg => msg}
          else
            msg = <<-MSG.strip.gsub(/\s+/, " ")
              <h4>Restart required</h4>
              You have recently installed the <tt>bson_ext</tt> extension.
              Run <code>genghisapp&nbsp;--kill</code> then restart <code>genghisapp</code> to use it.
            MSG
            alerts << {:level => 'info', :msg => msg}
          end
        end

        unless ENV['GENGHIS_NO_UPDATE_CHECK']
          require 'open-uri'

          Gem.refresh

          latest    = nil
          installed = Gem::Specification.find_all { |s| s.name == 'genghisapp' }.map { |s| s.version }.sort.last
          running   = Gem::Version.new(Genghis::VERSION.gsub(/[\+_-]/, '.'))

          begin
            open('https://raw.github.com/bobthecow/genghis/master/VERSION') do |f|
              latest = Gem::Version.new(f.read.gsub(/[\+_-]/, '.'))
            end
          rescue
            # do nothing...
          end

          if latest && (installed || running) < latest
            msg = <<-MSG.strip.gsub(/\s+/, " ")
              <h4>A Genghis update is available</h4>
              You are running Genghis version <tt>#{Genghis::VERSION}</tt>. The current version is <tt>#{latest}</tt>.
              Visit <a href="http://genghisapp.com">genghisapp.com</a> for more information.
            MSG
            alerts << {:level => 'warning', :msg => msg}
          elsif installed && running < installed
            msg = <<-MSG.strip.gsub(/\s+/, " ")
              <h4>Restart required</h4>
              You have installed Genghis version <tt>#{installed}</tt> but are still running <tt>#{Genghis::VERSION}</tt>.
              Run <code>genghisapp&nbsp;--kill</code> then restart <code>genghisapp</code>.
            MSG
            alerts << {:level => 'info', :msg => msg}
          end
        end

      end

      alerts
    end


    ### Server management ###

    def servers
      @servers ||= begin
        dsn_list = ::JSON.parse(request.cookies['genghis_rb_servers'] || '[]')
        servers  = default_servers.merge(init_servers(dsn_list))
        servers.empty? ? init_servers(['localhost']) : servers # fall back to 'localhost'
      end
    end

    def default_servers
      @default_servers ||= init_servers((ENV['GENGHIS_SERVERS'] || '').split(';'), :default => true)
    end

    def init_servers(dsn_list, opts={})
      Hash[dsn_list.map { |dsn|
        server = Genghis::Models::Server.new(dsn)
        server.default = opts[:default] || false
        [server.name, server]
      }]
    end

    def add_server(dsn)
      server = Genghis::Models::Server.new(dsn)
      raise Genghis::MalformedDocument.new(server.error) if server.error
      raise Genghis::ServerAlreadyExists.new(server.name) unless servers[server.name].nil?
      servers[server.name] = server
      save_servers
      server
    end

    def remove_server(name)
      raise Genghis::ServerNotFound.new(name) if servers[name].nil?
      @servers.delete(name)
      save_servers
    end

    def save_servers
      dsn_list = servers.collect { |name, server| server.dsn unless server.default }.compact
      response.set_cookie(
        :genghis_rb_servers,
        :path    => '/',
        :value   => dsn_list.to_json,
        :expires => Time.now + 60*60*24*365
      )
    end

    def is_ruby?
      (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ruby') || !(RUBY_PLATFORM =~ /java/)
    end

    def check_json_ext?
      !ENV['GENGHIS_NO_JSON_CHECK'] && is_ruby? && !defined?(::JSON::Ext)
    end

    def check_bson_ext?
      !ENV['GENGHIS_NO_BSON_CHECK'] && is_ruby? && !defined?(::BSON::BSON_C)
    end

  end
end
require 'sinatra/base'
require 'sinatra/mustache'
require 'sinatra/json'
require 'sinatra/reloader'
require 'sinatra/streaming'
require 'mongo'

module Genghis
  class Server < Sinatra::Base
    # default to 'production' because yeah
    set :environment, :production

    # work around path param slash encoding issues.
    set :protection, :except => :path_traversal

    enable :inline_templates

    helpers Sinatra::Streaming

    helpers Sinatra::JSON
    set :json_encoder,      :to_json
    set :json_content_type, :json

    helpers Genghis::Helpers

    def self.version
      Genghis::VERSION
    end


    ### Error handling ###

    helpers do
      def error_response(status, message)
        @status, @message = status, message
        @genghis_version = Genghis::VERSION
        @base_url = request.env['SCRIPT_NAME']
        if request.xhr?
          content_type :json
          error(status, {:error => message, :status => status}.to_json)
        else
          error(status, mustache('error.html.mustache'.intern))
        end
      end
    end

    error 400..599 do
      err = env['sinatra.error']
      error_response(err.respond_to?(:http_status) ? err.http_status : 500, err.message)
    end

    not_found do
      error_response(404, env['sinatra.error'].message.sub(/^Sinatra::NotFound$/, 'Not Found'))
    end


    ### Asset routes ###

    get '/assets/style.css' do
      content_type 'text/css'
      self.class.templates['style.css'.intern].first
    end

    get '/assets/script.js' do
      content_type 'text/javascript'
      self.class.templates['script.js'.intern].first
    end


    ### GridFS handling ###

    get '/servers/:server/databases/:database/collections/:collection/files/:document' do |server, database, collection, document|
      file = servers[server][database][collection].get_file document

      content_type file['contentType'] || 'application/octet-stream'
      attachment   file['filename'] || document

      stream do |out|
        file.each do |chunk|
          out << chunk
        end
      end
    end

    # delete '/servers/:server/databases/:database/collections/:collection/files/:document' do |server, database, collection, document|
    #   # ...
    #   json :success => true
    # end


    ### Default route ###

    get '*' do
      # Unless this is XHR, render index and let the client-side app handle routing
      pass if request.xhr?
      @genghis_version = Genghis::VERSION
      @base_url = request.env['SCRIPT_NAME']
      mustache 'index.html.mustache'.intern
    end


    ### Genghis API ###

    get '/check-status' do
      json :alerts => server_status_alerts
    end

    get '/servers' do
      json servers.values
    end

    post '/servers' do
      json add_server request_json['name']
    end

    get '/servers/:server' do |server|
      raise Genghis::ServerNotFound.new(server) if servers[server].nil?
      json servers[server]
    end

    delete '/servers/:server' do |server|
      remove_server server
      json :success => true
    end

    get '/servers/:server/databases' do |server|
      json servers[server].databases
    end

    post '/servers/:server/databases' do |server|
      json servers[server].create_database request_json['name']
    end

    get '/servers/:server/databases/:database' do |server, database|
      json servers[server][database]
    end

    delete '/servers/:server/databases/:database' do |server, database|
      servers[server][database].drop!
      json :success => true
    end

    get '/servers/:server/databases/:database/collections' do |server, database|
      json servers[server][database].collections
    end

    post '/servers/:server/databases/:database/collections' do |server, database|
      json servers[server][database].create_collection request_json['name']
    end

    get '/servers/:server/databases/:database/collections/:collection' do |server, database, collection|
      json servers[server][database][collection]
    end

    delete '/servers/:server/databases/:database/collections/:collection' do |server, database, collection|
      servers[server][database][collection].drop!
      json :success => true
    end

    get '/servers/:server/databases/:database/collections/:collection/documents' do |server, database, collection|
      genghis_json servers[server][database][collection].documents(query_param, page_param)
    end

    post '/servers/:server/databases/:database/collections/:collection/documents' do |server, database, collection|
      document = servers[server][database][collection].insert request_genghis_json
      genghis_json document
    end

    get '/servers/:server/databases/:database/collections/:collection/documents/:document' do |server, database, collection, document|
      genghis_json servers[server][database][collection][document]
    end

    put '/servers/:server/databases/:database/collections/:collection/documents/:document' do |server, database, collection, document|
      document = servers[server][database][collection].update document, request_genghis_json
      genghis_json document
    end

    delete '/servers/:server/databases/:database/collections/:collection/documents/:document' do |server, database, collection, document|
      collection = servers[server][database][collection].remove document
      json :success => true
    end

    post '/servers/:server/databases/:database/collections/:collection/files' do |server, database, collection|
      document = servers[server][database][collection].put_file request_genghis_json
      genghis_json document
    end

    delete '/servers/:server/databases/:database/collections/:collection/files/:document' do |server, database, collection, document|
      servers[server][database][collection].delete_file document
      json :success => true
    end
  end
end


Genghis::Server.run! if __FILE__ == $0

__END__


@@ index.html.mustache
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis</title> <link rel="shortcut icon" type="image/png" href=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link type="text/css" rel="stylesheet" href="//fonts.googleapis.com/css?family=Rokkitt:400,700|Source+Code+Pro"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css?v={{ genghis_version }}"> <script type="text/javascript" src="{{ base_url }}/assets/script.js?v={{ genghis_version }}"></script> <script type="text/javascript">jQuery(function() { Genghis.boot('{{ base_url }}'); });</script> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <a class="magic brand" href="{{ base_url }}/">Genghis</a> <nav></nav> </div> </div> </header> <noscript><h1>You won&#146;t get far in life without JavaScript&hellip;</h1></noscript> <section id="genghis" class="container fluid"> <aside id="alerts"></aside> <section id="servers" class="app-section"></section> <section id="databases" class="app-section"></section> <section id="collections" class="app-section"></section> <section id="documents" class="app-section"></section> <section id="document" class="app-section"><header></header></section> <section id="error" class="app-section"></section> </section> <footer id="footer" class="container"> <p><a href="http://genghisapp.com">Genghis</a>, by <a href="http://justinhileman.info">Justin Hileman</a>.</p> <p><a class="keyboard-shortcuts" href="#">Keyboard shortcuts available <img src=""></a></p> </footer> </body> </html>

@@ error.html.mustache
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis &mdash; {{ status }}: {{ message }}</title> <link rel="shortcut icon" type="image/png" href=""> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link type="text/css" rel="stylesheet" href="//fonts.googleapis.com/css?family=Rokkitt:400,700|Source+Code+Pro"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css?v={{ genghis_version }}"> </head> <body> <header class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container fixed"> <a class="magic brand" href="{{ base_url }}/">Genghis</a> <nav></nav> </div> </div> </header> <header class="masthead epic error"> <div class="container"> <h1>{{ status }}: {{ message }}</h1> <p> If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again. </p> </div> </header> <section id="genghis" class="container fluid"></section> <footer id="footer" class="container"> <p><a href="http://genghisapp.com">Genghis</a>, by <a href="http://justinhileman.info">Justin Hileman</a>.</p> </footer> </body> </html>

@@ style.css
/**
 * Genghis v2.3.11
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <justin@justinhileman.info>
 */
.CodeMirror{font-family:monospace;height:300px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumbers{}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999}.CodeMirror div.CodeMirror-cursor{border-left:1px solid black;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite{}.cm-tab{display:inline-block}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-error{color:red}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;padding-right:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;padding-bottom:30px;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block;*zoom:1;*display:inline}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-widget{}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-right:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.CodeMirror span{*vertical-align:text-bottom}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}}kbd,.key{display:inline;display:inline-block;min-width:1em;padding:.2em .3em;font:400 .85em/1 "Lucida Grande",Lucida,Arial,sans-serif;text-align:center;text-decoration:none;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;border:none;cursor:default;-moz-user-select:none;-webkit-user-select:none;user-select:none}kbd[title],.key[title]{cursor:help}kbd,kbd.dark,.dark-keys kbd,.key,.key.dark,.dark-keys .key{background:#505050;background:-moz-linear-gradient(top,#3c3c3c,#505050);background:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#505050));color:#fafafa;text-shadow:-1px -1px 0 #464646;-moz-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3);box-shadow:inset 0 0 1px #969696,inset 0 -.05em .4em #505050,0 .1em 0 #1e1e1e,0 .1em .1em rgba(0,0,0,.3)}kbd.light,.light-keys kbd,.key.light,.light-keys .key{background:#fafafa;background:-moz-linear-gradient(top,#d2d2d2,#fff);background:-webkit-gradient(linear,left top,left bottom,from(#d2d2d2),to(#fff));color:#323232;text-shadow:0 0 2px#fff;-moz-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);-webkit-box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9);box-shadow:inset 0 0 1px#fff,inset 0 0 .4em #c8c8c8,0 .1em 0 #828282,0 .11em 0 rgba(0,0,0,.4),0 .1em .11em rgba(0,0,0,.9)}html,body{background-image:url('')}.navbar-search .grippie{background-image:url('')}.nav .dropdown,.navbar-search{background-image:url('')}section#servers tr.spinning td:first-child{background-image:url('')}body > section section.spinning > header h2{background-image:url('')}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#1d8835;text-decoration:none}a:hover,a:focus{color:#10491c;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:"";line-height:0}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.12765957%;*margin-left:2.07446809%}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"] + [class*="span"]{margin-left:2.12765957%}.row-fluid .span12{width:100%;*width:99.94680851%}.row-fluid .span11{width:91.4893617%;*width:91.43617021%}.row-fluid .span10{width:82.9787234%;*width:82.92553191%}.row-fluid .span9{width:74.46808511%;*width:74.41489362%}.row-fluid .span8{width:65.95744681%;*width:65.90425532%}.row-fluid .span7{width:57.44680851%;*width:57.39361702%}.row-fluid .span6{width:48.93617021%;*width:48.88297872%}.row-fluid .span5{width:40.42553191%;*width:40.37234043%}.row-fluid .span4{width:31.91489362%;*width:31.86170213%}.row-fluid .span3{width:23.40425532%;*width:23.35106383%}.row-fluid .span2{width:14.89361702%;*width:14.84042553%}.row-fluid .span1{width:6.38297872%;*width:6.32978723%}.row-fluid .offset12{margin-left:104.25531915%;*margin-left:104.14893617%}.row-fluid .offset12:first-child{margin-left:102.12765957%;*margin-left:102.0212766%}.row-fluid .offset11{margin-left:95.74468085%;*margin-left:95.63829787%}.row-fluid .offset11:first-child{margin-left:93.61702128%;*margin-left:93.5106383%}.row-fluid .offset10{margin-left:87.23404255%;*margin-left:87.12765957%}.row-fluid .offset10:first-child{margin-left:85.10638298%;*margin-left:85%}.row-fluid .offset9{margin-left:78.72340426%;*margin-left:78.61702128%}.row-fluid .offset9:first-child{margin-left:76.59574468%;*margin-left:76.4893617%}.row-fluid .offset8{margin-left:70.21276596%;*margin-left:70.10638298%}.row-fluid .offset8:first-child{margin-left:68.08510638%;*margin-left:67.9787234%}.row-fluid .offset7{margin-left:61.70212766%;*margin-left:61.59574468%}.row-fluid .offset7:first-child{margin-left:59.57446809%;*margin-left:59.46808511%}.row-fluid .offset6{margin-left:53.19148936%;*margin-left:53.08510638%}.row-fluid .offset6:first-child{margin-left:51.06382979%;*margin-left:50.95744681%}.row-fluid .offset5{margin-left:44.68085106%;*margin-left:44.57446809%}.row-fluid .offset5:first-child{margin-left:42.55319149%;*margin-left:42.44680851%}.row-fluid .offset4{margin-left:36.17021277%;*margin-left:36.06382979%}.row-fluid .offset4:first-child{margin-left:34.04255319%;*margin-left:33.93617021%}.row-fluid .offset3{margin-left:27.65957447%;*margin-left:27.55319149%}.row-fluid .offset3:first-child{margin-left:25.53191489%;*margin-left:25.42553191%}.row-fluid .offset2{margin-left:19.14893617%;*margin-left:19.04255319%}.row-fluid .offset2:first-child{margin-left:17.0212766%;*margin-left:16.91489362%}.row-fluid .offset1{margin-left:10.63829787%;*margin-left:10.53191489%}.row-fluid .offset1:first-child{margin-left:8.5106383%;*margin-left:8.40425532%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid#eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline > li,ol.inline > li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid#eee;border-bottom:1px solid#fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted#999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid#eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid#eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:400;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid#ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;border:1px solid#ccc;background-color:#fff}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls > .radio:first-child,.controls > .checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline + .radio.inline,.checkbox.inline + .checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"] + [class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0#fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group > .dropdown-toggle,.input-prepend .btn-group > .dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input + .btn-group .btn:last-child,.input-append select + .btn-group .btn:last-child,.input-append .uneditable-input + .btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child > .dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input + .btn-group .btn,.input-prepend.input-append select + .btn-group .btn,.input-prepend.input-append .uneditable-input + .btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend + .control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input + .help-block,.form-horizontal select + .help-block,.form-horizontal textarea + .help-block,.form-horizontal .uneditable-input + .help-block,.form-horizontal .input-prepend + .help-block,.form-horizontal .input-append + .help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid#ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption + thead tr:first-child th,.table caption + thead tr:first-child td,.table colgroup + thead tr:first-child th,.table colgroup + thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody + tbody{border-top:2px solid#ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid#ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid#ddd}.table-bordered caption + thead tr:first-child th,.table-bordered caption + tbody tr:first-child th,.table-bordered caption + tbody tr:first-child td,.table-bordered colgroup + thead tr:first-child th,.table-bordered colgroup + tbody tr:first-child th,.table-bordered colgroup + tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child > th:first-child,.table-bordered tbody:first-child tr:first-child > td:first-child,.table-bordered tbody:first-child tr:first-child > th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered thead:first-child tr:first-child > th:last-child,.table-bordered tbody:first-child tr:first-child > td:last-child,.table-bordered tbody:first-child tr:first-child > th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-bordered thead:last-child tr:last-child > th:first-child,.table-bordered tbody:last-child tr:last-child > td:first-child,.table-bordered tbody:last-child tr:last-child > th:first-child,.table-bordered tfoot:last-child tr:last-child > td:first-child,.table-bordered tfoot:last-child tr:last-child > th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.table-bordered thead:last-child tr:last-child > th:last-child,.table-bordered tbody:last-child tr:last-child > td:last-child,.table-bordered tbody:last-child tr:last-child > th:last-child,.table-bordered tfoot:last-child tr:last-child > td:last-child,.table-bordered tfoot:last-child tr:last-child > th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.table-bordered tfoot + tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}.table-bordered tfoot + tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}.table-bordered caption + thead tr:first-child th:first-child,.table-bordered caption + tbody tr:first-child td:first-child,.table-bordered colgroup + thead tr:first-child th:first-child,.table-bordered colgroup + tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.table-bordered caption + thead tr:first-child th:last-child,.table-bordered caption + tbody tr:first-child td:last-child,.table-bordered colgroup + thead tr:first-child th:last-child,.table-bordered colgroup + tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}.table-striped tbody > tr:nth-child(odd) > td,.table-striped tbody > tr:nth-child(odd) > th{background-color:#f9f9f9}.table-hover tbody tr:hover > td,.table-hover tbody tr:hover > th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success > td{background-color:#dff0d8}.table tbody tr.error > td{background-color:#f2dede}.table tbody tr.warning > td{background-color:#fcf8e3}.table tbody tr.info > td{background-color:#d9edf7}.table-hover tbody tr.success:hover > td{background-color:#d0e9c6}.table-hover tbody tr.error:hover > td{background-color:#ebcccc}.table-hover tbody tr.warning:hover > td{background-color:#faf2cc}.table-hover tbody tr.info:hover > td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../../vendor/bootstrap/img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px}.icon-white,.nav-pills > .active > a > [class^="icon-"],.nav-pills > .active > a > [class*=" icon-"],.nav-list > .active > a > [class^="icon-"],.nav-list > .active > a > [class*=" icon-"],.navbar-inverse .nav > .active > a > [class^="icon-"],.navbar-inverse .nav > .active > a > [class*=" icon-"],.dropdown-menu > li > a:hover > [class^="icon-"],.dropdown-menu > li > a:focus > [class^="icon-"],.dropdown-menu > li > a:hover > [class*=" icon-"],.dropdown-menu > li > a:focus > [class*=" icon-"],.dropdown-menu > .active > a > [class^="icon-"],.dropdown-menu > .active > a > [class*=" icon-"],.dropdown-submenu:hover > a > [class^="icon-"],.dropdown-submenu:focus > a > [class^="icon-"],.dropdown-submenu:hover > a > [class*=" icon-"],.dropdown-submenu:focus > a > [class*=" icon-"]{background-image:url("../../vendor/bootstrap/img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px;width:16px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px;width:16px}.icon-folder-open{background-position:-408px -120px;width:16px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid#000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff}.dropdown-menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu > li > a:hover,.dropdown-menu > li > a:focus,.dropdown-submenu:hover > a,.dropdown-submenu:focus > a{text-decoration:none;color:#fff;background-color:#1b8032;background-image:-moz-linear-gradient(top,#1d8835,#19732d);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#19732d));background-image:-webkit-linear-gradient(top,#1d8835,#19732d);background-image:-o-linear-gradient(top,#1d8835,#19732d);background-image:linear-gradient(to bottom,#1d8835,#19732d);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff19732d',GradientType=0)}.dropdown-menu > .active > a,.dropdown-menu > .active > a:hover,.dropdown-menu > .active > a:focus{color:#fff;text-decoration:none;outline:0;background-color:#1b8032;background-image:-moz-linear-gradient(top,#1d8835,#19732d);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#19732d));background-image:-webkit-linear-gradient(top,#1d8835,#19732d);background-image:-o-linear-gradient(top,#1d8835,#19732d);background-image:linear-gradient(to bottom,#1d8835,#19732d);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff19732d',GradientType=0)}.dropdown-menu > .disabled > a,.dropdown-menu > .disabled > a:hover,.dropdown-menu > .disabled > a:focus{color:#999}.dropdown-menu > .disabled > a:hover,.dropdown-menu > .disabled > a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default}.open{*z-index:1000}.open > .dropdown-menu{display:block}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right > .dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid#000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu > .dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover > .dropdown-menu{display:block}.dropup .dropdown-submenu > .dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu > a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover > a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left > .dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0#fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid#ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block + .btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#1d8843;background-image:-moz-linear-gradient(top,#1d8835,#1d8859);background-image:-webkit-gradient(linear,0 0,0 100%,from(#1d8835),to(#1d8859));background-image:-webkit-linear-gradient(top,#1d8835,#1d8859);background-image:-o-linear-gradient(top,#1d8835,#1d8859);background-image:linear-gradient(to bottom,#1d8835,#1d8859);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1d8835',endColorstr='#ff1d8859',GradientType=0);border-color:#1d8859 #1d8859 #104930;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#1d8859;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#1d8859;*background-color:#19734b}.btn-primary:active,.btn-primary.active{background-color:#145e3d \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);border-color:#222 #222222#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#1d8835;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#10491c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em}.btn-group:first-child{*margin-left:0}.btn-group + .btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar > .btn + .btn,.btn-toolbar > .btn-group + .btn,.btn-toolbar > .btn + .btn-group{margin-left:5px}.btn-group > .btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group > .btn + .btn{margin-left:-1px}.btn-group > .btn,.btn-group > .dropdown-menu,.btn-group > .popover{font-size:14px}.btn-group > .btn-mini{font-size:10.5px}.btn-group > .btn-small{font-size:11.9px}.btn-group > .btn-large{font-size:17.5px}.btn-group > .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.btn-group > .btn:last-child,.btn-group > .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.btn-group > .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.btn-group > .btn.large:last-child,.btn-group > .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.btn-group > .btn:hover,.btn-group > .btn:focus,.btn-group > .btn:active,.btn-group > .btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group > .btn + .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px}.btn-group > .btn-mini + .dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px}.btn-group > .btn-small + .dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group > .btn-large + .dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#1d8859}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical > .btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical > .btn + .btn{margin-left:0;margin-top:-1px}.btn-group-vertical > .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical > .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical > .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical > .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success h4{color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block > p,.alert-block > ul{margin-bottom:0}.alert-block p + p{margin-top:5px}.nav{margin-left:0;margin-bottom:20px;list-style:none}.nav > li > a{display:block}.nav > li > a:hover,.nav > li > a:focus{text-decoration:none;background-color:#eee}.nav > li > a > img{max-width:none}.nav > .pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li + .nav-header{margin-top:9px}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0}.nav-list > li > a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list > li > a{padding:3px 15px}.nav-list > .active > a,.nav-list > .active > a:hover,.nav-list > .active > a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#1d8835}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid#fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs > li,.nav-pills > li{float:left}.nav-tabs > li > a,.nav-pills > li > a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs > li{margin-bottom:-1px}.nav-tabs > li > a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs > li > a:hover,.nav-tabs > li > a:focus{border-color:#eee #eeeeee#ddd}.nav-tabs > .active > a,.nav-tabs > .active > a:hover,.nav-tabs > .active > a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills > li > a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills > .active > a,.nav-pills > .active > a:hover,.nav-pills > .active > a:focus{color:#fff;background-color:#1d8835}.nav-stacked > li{float:none}.nav-stacked > li > a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked > li > a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked > li:first-child > a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}.nav-tabs.nav-stacked > li:last-child > a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.nav-tabs.nav-stacked > li > a:hover,.nav-tabs.nav-stacked > li > a:focus{border-color:#ddd;z-index:2}.nav-pills.nav-stacked > li > a{margin-bottom:3px}.nav-pills.nav-stacked > li:last-child > a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{border-top-color:#1d8835;border-bottom-color:#1d8835;margin-top:6px}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#10491c;border-bottom-color:#10491c}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav > .dropdown.active > a:hover,.nav > .dropdown.active > a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav > li.dropdown.open.active > a:hover,.nav > li.dropdown.open.active > a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open > a:hover,.tabs-stacked .open > a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below > .nav-tabs,.tabs-right > .nav-tabs,.tabs-left > .nav-tabs{border-bottom:0}.tab-content > .tab-pane,.pill-content > .pill-pane{display:none}.tab-content > .active,.pill-content > .active{display:block}.tabs-below > .nav-tabs{border-top:1px solid #ddd}.tabs-below > .nav-tabs > li{margin-top:-1px;margin-bottom:0}.tabs-below > .nav-tabs > li > a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below > .nav-tabs > li > a:hover,.tabs-below > .nav-tabs > li > a:focus{border-bottom-color:transparent;border-top-color:#ddd}.tabs-below > .nav-tabs > .active > a,.tabs-below > .nav-tabs > .active > a:hover,.tabs-below > .nav-tabs > .active > a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left > .nav-tabs > li,.tabs-right > .nav-tabs > li{float:none}.tabs-left > .nav-tabs > li > a,.tabs-right > .nav-tabs > li > a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left > .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left > .nav-tabs > li > a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left > .nav-tabs > li > a:hover,.tabs-left > .nav-tabs > li > a:focus{border-color:#eee #dddddd#eee #eeeeee}.tabs-left > .nav-tabs .active > a,.tabs-left > .nav-tabs .active > a:hover,.tabs-left > .nav-tabs .active > a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right > .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right > .nav-tabs > li > a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right > .nav-tabs > li > a:hover,.tabs-right > .nav-tabs > li > a:focus{border-color:#eee #eeeeee#eee #dddddd}.tabs-right > .nav-tabs .active > a,.tabs-right > .nav-tabs .active > a:hover,.tabs-right > .nav-tabs .active > a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav > .disabled > a{color:#999}.nav > .disabled > a:hover,.nav > .disabled > a:focus{text-decoration:none;background-color:transparent;cursor:default}.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2}.navbar-inner{min-height:60px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);*zoom:1}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{float:left;display:block;padding:20px 20px 20px;margin-left:-20px;font-size:20px;font-weight:200;color:#fff;text-shadow:0 1px 0#fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:60px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:60px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid#fff}.navbar .btn,.navbar .btn-group{margin-top:15px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:15px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:15px;margin-bottom:0}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1010;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav > li{float:left}.navbar .nav > li > a{float:none;padding:20px 15px 20px;color:#777;text-decoration:none;text-shadow:0 1px 0#fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav > li > a:focus,.navbar .nav > li > a:hover{background-color:transparent;color:#333;text-decoration:none}.navbar .nav > .active > a,.navbar .nav > .active > a:hover,.navbar .nav > .active > a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar + .icon-bar{margin-top:3px}.navbar .nav > li > .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:9px}.navbar .nav > li > .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid#fff;position:absolute;top:-6px;left:10px}.navbar-fixed-bottom .nav > li > .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);border-bottom:0;bottom:-7px;top:auto}.navbar-fixed-bottom .nav > li > .dropdown-menu:after{border-top:6px solid#fff;border-bottom:0;bottom:-6px;top:auto}.navbar .nav li.dropdown > a:hover .caret,.navbar .nav li.dropdown > a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open > .dropdown-toggle,.navbar .nav li.dropdown.active > .dropdown-toggle,.navbar .nav li.dropdown.open.active > .dropdown-toggle{background-color:#e5e5e5;color:#555}.navbar .nav li.dropdown > .dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open > .dropdown-toggle .caret,.navbar .nav li.dropdown.active > .dropdown-toggle .caret,.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right > li > .dropdown-menu,.navbar .nav > li > .dropdown-menu.pull-right{left:auto;right:0}.navbar .pull-right > li > .dropdown-menu:before,.navbar .nav > li > .dropdown-menu.pull-right:before{left:auto;right:12px}.navbar .pull-right > li > .dropdown-menu:after,.navbar .nav > li > .dropdown-menu.pull-right:after{left:auto;right:13px}.navbar .pull-right > li > .dropdown-menu .dropdown-menu,.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0);border-color:#252525}.navbar-inverse .brand,.navbar-inverse .nav > li > a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav > li > a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav > li > a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav > li > a:focus,.navbar-inverse .nav > li > a:hover{background-color:transparent;color:#fff}.navbar-inverse .nav .active > a,.navbar-inverse .nav .active > a:hover,.navbar-inverse .nav .active > a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222}.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle{background-color:#111;color:#fff}.navbar-inverse .nav li.dropdown > a:hover .caret,.navbar-inverse .nav li.dropdown > a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0#fff;background-color:#fff;border:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15);outline:0}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);border-color:#040404 #040404#000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb > li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0#fff}.breadcrumb > li > .divider{padding:0 5px;color:#ccc}.breadcrumb > .active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul > li{display:inline}.pagination ul > li > a,.pagination ul > li > span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid#ddd;border-left-width:0}.pagination ul > li > a:hover,.pagination ul > li > a:focus,.pagination ul > .active > a,.pagination ul > .active > span{background-color:#f5f5f5}.pagination ul > .active > a,.pagination ul > .active > span{color:#999;cursor:default}.pagination ul > .disabled > span,.pagination ul > .disabled > a,.pagination ul > .disabled > a:hover,.pagination ul > .disabled > a:focus{color:#999;background-color:transparent;cursor:default}.pagination ul > li:first-child > a,.pagination ul > li:first-child > span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.pagination ul > li:last-child > a,.pagination ul > li:last-child > span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul > li > a,.pagination-large ul > li > span{padding:11px 19px;font-size:17.5px}.pagination-large ul > li:first-child > a,.pagination-large ul > li:first-child > span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px}.pagination-large ul > li:last-child > a,.pagination-large ul > li:last-child > span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px}.pagination-mini ul > li:first-child > a,.pagination-small ul > li:first-child > a,.pagination-mini ul > li:first-child > span,.pagination-small ul > li:first-child > span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px}.pagination-mini ul > li:last-child > a,.pagination-small ul > li:last-child > a,.pagination-mini ul > li:last-child > span,.pagination-small ul > li:last-child > span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px}.pagination-small ul > li > a,.pagination-small ul > li > span{padding:2px 10px;font-size:11.9px}.pagination-mini ul > li > a,.pagination-mini ul > li > span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1}.pager:before,.pager:after{display:table;content:"";line-height:0}.pager:after{clear:both}.pager li{display:inline}.pager li > a,.pager li > span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li > a:hover,.pager li > a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next > a,.pager .next > span{float:right}.pager .previous > a,.pager .previous > span{float:left}.pager .disabled > a,.pager .disabled > a:hover,.pager .disabled > a:focus,.pager .disabled > span{color:#999;background-color:#fff;cursor:default}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;*zoom:1}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0}.modal-footer:after{clear:both}.modal-footer .btn + .btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn + .btn{margin-left:-1px}.modal-footer .btn-block + .btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1030;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails > li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#1d8835;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail > img{display:block;max-width:100%;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.progress .bar{width:0;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar + .bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{overflow:hidden;width:100%;position:relative}.carousel-inner > .item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner > .item > img,.carousel-inner > .item > a > img{display:block;line-height:1}.carousel-inner > .active,.carousel-inner > .next,.carousel-inner > .prev{display:block}.carousel-inner > .active{left:0}.carousel-inner > .next,.carousel-inner > .prev{position:absolute;top:0;width:100%}.carousel-inner > .next{left:100%}.carousel-inner > .prev{left:-100%}.carousel-inner > .next.left,.carousel-inner > .prev.right{left:0}.carousel-inner > .active.left{left:-100%}.carousel-inner > .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid#fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{left:auto;right:15px}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff;line-height:20px}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}.container,.navbar .container{padding-left:20px;padding-right:20px;width:auto;min-width:320px;max-width:1400px}.navbar .brand{font-size:32px;line-height:32px;padding:16px 20px 12px;font-weight:700;color:#ddd;text-shadow:0 -1px 0 rgba(0,0,0,0.25),0 1px 0#fff,0 0 30px rgba(0,0,0,0.125);-webkit-transition:color .1s linear;-moz-transition:color .1s linear;-o-transition:color .1s linear;transition:color .1s linear}.navbar .brand:hover{color:#1d8835}.navbar .nav > li > a{min-height:18px}.navbar .nav li.dropdown .dropdown-toggle{padding:20px 10px 21px 20px;white-space:nowrap}.navbar .nav li.dropdown > .dropdown-toggle,.navbar .nav li.dropdown.open > .dropdown-toggle,.navbar .nav li.dropdown.active > .dropdown-toggle{background-color:transparent}.navbar .nav .dropdown-menu li a{padding-right:4em;position:relative}.navbar .nav .dropdown-menu li a span{padding:0 6px;display:inline-block;position:absolute;top:50%;right:10px;margin-top:-8px;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;line-height:16px;color:#666;background-color:rgba(0,0,0,0.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.2),0 1px 0 rgba(255,255,255,0.2)}.navbar .nav .dropdown-menu li a:hover span{color:#DDD}.navbar .nav .dropdown-menu li.active a span{color:#CCC;background-color:rgba(0,0,0,0.2)}.navbar form{padding-left:20px;margin:15px 0 0 -10px}.navbar .control-group{margin-bottom:0}code,pre{font-family:'Source Code Pro',monospace}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.nav .dropdown,.navbar-search{background-color:transparent;background-position:center left;background-repeat:no-repeat}.navbar-search{background-position:left -1px}.popover-title{font-size:18px}.confirm-modal{width:420px;margin-left:-210px}.confirm-modal .confirm-input{width:97%}html,body{color:#111;background-color:#D3D3D3}h1,h2,h3,a.brand,#footer p{font-family:"Rokkitt",serif;font-weight:700}noscript h1{font-size:2.2em;text-align:center;margin:80px 40px}::-moz-selection{background:#b4d6bc;text-shadow:none}::-webkit-selection{background:#b4d6bc;text-shadow:none}::selection{background:#b4d6bc;text-shadow:none}html,body{margin:0;padding:0}body{padding-top:60px}#alerts{margin-top:20px}#footer{font-weight:400;text-align:center}#footer a.keyboard-shortcuts:link,#footer a.keyboard-shortcuts:visited{color:#888}#footer a.keyboard-shortcuts:link img,#footer a.keyboard-shortcuts:visited img{opacity:.5;filter:alpha(opacity=50)}#footer a.keyboard-shortcuts:hover,#footer a.keyboard-shortcuts:active{color:#666}#footer a.keyboard-shortcuts:hover img,#footer a.keyboard-shortcuts:active img{opacity:1;filter:alpha(opacity=100)}#footer a.keyboard-shortcuts img{line-height:1px;vertical-align:text-top;height:11px;width:19px}.navbar .servers{display:none}.navbar .nav-section{display:none}body.section-databases .navbar .nav-section.server,body.section-collections .navbar .nav-section.server,body.section-collections .navbar .nav-section.database,body.section-documents .navbar .nav-section.server,body.section-documents .navbar .nav-section.database,body.section-documents .navbar .nav-section.collection,body.section-document .navbar .nav-section.server,body.section-document .navbar .nav-section.database,body.section-document .navbar .nav-section.collection{display:block}.navbar form{display:none}body.section-documents .navbar form,body.section-document .navbar form{display:block}html.textoverflow .navbar .nav-section > a{max-width:8em;overflow:hidden;text-overflow:ellipsis}.navbar-search{padding-bottom:16px}.navbar-search .grippie{position:absolute;bottom:2px;left:50%;margin-left:-5px;clear:both;display:block;height:12px;width:30px;background-color:transparent;background-position:center center;background-repeat:repeat-x;border:none;cursor:row-resize;opacity:.5;filter:alpha(opacity=50)}.navbar-search .grippie:hover{opacity:1;filter:alpha(opacity=100)}.navbar-search .search-advanced{display:none;position:absolute;top:0;left:0;right:0;bottom:10px}.navbar-search .search-advanced .well{position:absolute;top:0;left:0;right:0;bottom:30px;padding:0;overflow:hidden}.navbar-search .search-advanced.focused .well{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.navbar-search .search-advanced .form-actions{position:absolute;left:0;right:0;bottom:0;padding:0;margin:-20px 0 5px;border-top:none;background:transparent}.navbar-search .search-advanced .form-actions .btn{float:right;margin-left:5px}.navbar-search.expanded{position:relative;clear:both;float:none;margin:0 20px;padding:0;background-image:none;min-height:120px}.navbar-search.expanded .grippie{margin-left:-15px}.navbar-search.expanded input.search-query{display:none}.navbar-search.expanded .search-advanced{display:block}.masthead{position:relative;padding:40px 0;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.4),0 0 30px rgba(0,0,0,0.1);background:-webkit-radial-gradient(#115120 25%,transparent 26%) 0 0,-webkit-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#115120 25%,transparent 26%) 0 0,-moz-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#115120 25%,transparent 26%) 0 0,-ms-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#115120 25%,transparent 26%) 0 0,-o-radial-gradient(#115120 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#115120 25%,transparent 26%) 0 0,radial-gradient(#115120 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#145e25;-webkit-box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2);-moz-box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2);box-shadow:inset 0 3px 7px rgba(0,0,0,.2),inset 0 -3px 7px rgba(0,0,0,.2)}.masthead .container{position:relative;z-index:2}.masthead:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,0.01);background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,100% 0,from(rgba(0,0,0,0.5)),to(rgba(255,255,255,0.01)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:-o-linear-gradient(left,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-image:linear-gradient(to right,rgba(0,0,0,0.5),rgba(255,255,255,0.01));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#03ffffff',GradientType=1)}.masthead h1{font-size:60px;font-weight:700;letter-spacing:-1px;line-height:1}.masthead p{font-size:24px;line-height:1.25;margin-bottom:20px;font-weight:300}.masthead.epic{text-align:center;padding:70px 80px}.masthead.epic h1{font-size:120px}.masthead.epic h2{font-size:80px}.masthead.epic p{font-size:40px;font-weight:200;margin-bottom:30px}.masthead.error{background:-webkit-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-webkit-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-moz-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-ms-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#8a3635 25%,transparent 26%) 0 0,-o-radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#8a3635 25%,transparent 26%) 0 0,radial-gradient(#8a3635 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#953b39}.masthead.muted{background:-webkit-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-webkit-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-webkit-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-webkit-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-moz-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-moz-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-moz-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-moz-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-ms-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-ms-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-ms-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-ms-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:-o-radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,-o-radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,-o-radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,-o-radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;background:radial-gradient(#2b2b2b 25%,transparent 26%) 0 0,radial-gradient(#2b2b2b 25%,transparent 26%) 16px 16px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 0 -1px,radial-gradient(rgba(0,0,0,0.2) 25%,transparent 26%) 16px 15px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 0 1px,radial-gradient(rgba(255,255,255,0.1) 25%,transparent 26%) 16px 17px;-webkit-background-size:32px 30px;-moz-background-size:32px 30px;-ms-background-size:32px 30px;-o-background-size:32px 30px;background-size:32px 30px;background-color:#333}#genghis{min-height:150px}.app-section{display:none;background-color:#fff;margin:20px 0;padding:20px;border:1px solid #AAA;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white;-moz-box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white;box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white}.app-section > header{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;margin:-20px -20px 20px;padding:9px 20px;background-color:#f5f5f5;border-bottom:1px solid #ddd;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff}.app-section > header h2{font-size:24px;margin:0;line-height:30px}.app-section > .content{min-height:100px;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}.app-section > p:first-child{margin-top:0}.app-section > p:last-child{margin-bottom:0}.app-section.spinning{height:180px}.app-section.spinning header h2{background-color:transparent;background-position:left center;background-repeat:no-repeat;text-indent:-10000em}.app-section.spinning .controls,.app-section.spinning .add-form,.app-section.spinning .content{display:none}.app-section .details{display:none}.app-section .has-details{border-bottom:1px dotted#998;cursor:default}.add-form button.show,.add-form button.dropdown-toggle{display:none}.add-form.inactive button,.add-form.inactive input,.add-form.inactive .input-append{display:none}.add-form.inactive button.show,.add-form.inactive button.dropdown-toggle{display:inherit}.add-form.inactive .help{display:none}.add-form span.input-append .add-on{margin-right:4px}.add-form .help{cursor:default}table{width:100%;margin-bottom:20px;border:1px solid#ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}table th,table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid#ddd}table th{font-weight:700}table thead th{vertical-align:bottom}table caption + thead tr:first-child th,table caption + thead tr:first-child td,table colgroup + thead tr:first-child th,table colgroup + thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody + tbody{border-top:2px solid#ddd}table .table{background-color:#fff}table th,table td{border-left:1px solid#ddd}table caption + thead tr:first-child th,table caption + tbody tr:first-child th,table caption + tbody tr:first-child td,table colgroup + thead tr:first-child th,table colgroup + tbody tr:first-child th,table colgroup + tbody tr:first-child td,table thead:first-child tr:first-child th,table tbody:first-child tr:first-child th,table tbody:first-child tr:first-child td{border-top:0}table thead:first-child tr:first-child > th:first-child,table tbody:first-child tr:first-child > td:first-child,table tbody:first-child tr:first-child > th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table thead:first-child tr:first-child > th:last-child,table tbody:first-child tr:first-child > td:last-child,table tbody:first-child tr:first-child > th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table thead:last-child tr:last-child > th:first-child,table tbody:last-child tr:last-child > td:first-child,table tbody:last-child tr:last-child > th:first-child,table tfoot:last-child tr:last-child > td:first-child,table tfoot:last-child tr:last-child > th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}table thead:last-child tr:last-child > th:last-child,table tbody:last-child tr:last-child > td:last-child,table tbody:last-child tr:last-child > th:last-child,table tfoot:last-child tr:last-child > td:last-child,table tfoot:last-child tr:last-child > th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}table tfoot + tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0}table tfoot + tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0}table caption + thead tr:first-child th:first-child,table caption + tbody tr:first-child td:first-child,table colgroup + thead tr:first-child th:first-child,table colgroup + tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px}table caption + thead tr:first-child th:last-child,table caption + tbody tr:first-child td:last-child,table colgroup + thead tr:first-child th:last-child,table colgroup + tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px}table tbody tr:hover > td,table tbody tr:hover > th{background-color:#f5f5f5}table .tablesorter-header-inner{float:left}table .tablesorter-header{cursor:pointer}table .tablesorter-header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden}table .tablesorter-header.sorter-false{cursor:default}table .tablesorter-header.sorter-false:after{display:none}table .tablesorter-header.tablesorter-headerAsc,table .tablesorter-header.tablesorter-headerDesc{background-color:rgba(29,136,53,0.05);text-shadow:0 1px 1px rgba(255,255,255,0.75)}table .tablesorter-header:hover:after{visibility:visible}table .tablesorter-header.tablesorter-headerDesc:after,table .tablesorter-header.tablesorter-headerDesc:hover:after{visibility:visible;opacity:.6;filter:alpha(opacity=60)}table .tablesorter-header.tablesorter-headerAsc:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.6;filter:alpha(opacity=60)}tr td.action-column{padding:7px 10px 0;text-align:right}tr td.action-column button{visibility:hidden;-webkit-transition-property:color,background,box-shadow;-moz-transition-property:color,background,box-shadow;-o-transition-property:color,background,box-shadow;transition-property:color,background,box-shadow}tr:hover td.action-column button{visibility:inherit}#servers .alert-error{padding:3px 10px;font-weight:700}#servers tr.spinning td:first-child{padding-left:35px;background-color:transparent;background-position:10px center;background-repeat:no-repeat}#servers tr input{display:none}#servers tr.editing span.name{display:none}#servers tr.editing input{display:inherit}html.no-filereader #documents .file-upload{display:none}.index-details{color:#111;list-style:none;margin:0}.index-details li{display:block;margin-bottom:5px}.stats-details,.stats-details dt,.stats-details dd{margin:0;padding:0}.stats-details dt{float:left;width:10em}.stats-details dd{margin-left:10em;text-align:right}#documents .controls{*zoom:1;margin-bottom:20px}#documents .controls:before,#documents .controls:after{display:table;content:"";line-height:0}#documents .controls:after{clear:both}#documents .add-document{float:left}#documents .pagination{margin:0}#documents .pagination li.prev a:after{content:' Previous'}#documents .pagination li.next a:before{content:'Next '}#document h2 small{font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding-left:10px}#document article h3{display:none}.document{font-family:'Source Code Pro',monospace;line-height:1.4em}.document-wrapper div.well{overflow-x:auto}.document-wrapper div.well h3{margin-top:0}.document-wrapper div.well h3 a{color:#333}.document-wrapper div.well h3 a:hover,.document-wrapper div.well h3 a:active{color:#1d8835}.document-wrapper div.well h3 small{font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding-left:10px}.document-wrapper article{position:relative}.document-wrapper article .document-actions{position:absolute;right:20px;z-index:10}.document-wrapper article .document-actions button.save,.document-wrapper article .document-actions button.cancel{display:none}.document-wrapper article .document-actions button.edit,.document-wrapper article .document-actions button.destroy,.document-wrapper article .document-actions a.grid-download,.document-wrapper article .document-actions a.grid-file{visibility:hidden}.document-wrapper article:hover .document-actions button.edit,.document-wrapper article:hover .document-actions button.destroy,.document-wrapper article:hover .document-actions a.grid-download,.document-wrapper article:hover .document-actions a.grid-file{visibility:inherit}.document-wrapper article div.well{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.document-wrapper article.edit .document-actions{margin-top:20px}.document-wrapper article.edit .document-actions button.edit,.document-wrapper article.edit .document-actions button.destroy,.document-wrapper article.edit .document-actions a.grid-download,.document-wrapper article.edit .document-actions a.grid-file{display:none}.document-wrapper article.edit .document-actions button.save,.document-wrapper article.edit .document-actions button.cancel{display:inline-block}.document-wrapper article.edit div.well{padding:0;background-color:#fff;*zoom:1}.document-wrapper article.edit div.well h3{display:none}.document-wrapper article.edit div.well:before,.document-wrapper article.edit div.well:after{display:table;content:"";line-height:0}.document-wrapper article.edit div.well:after{clear:both}.document-wrapper article.edit.focused div.well{border-color:rgba(29,136,53,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(29,136,53,0.6)}.modal-editor{width:820px;margin-left:-410px}.modal-editor .wrapper,.modal-file-upload .wrapper{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:1px solid#ccc}.modal-editor .wrapper.focused,.modal-file-upload .wrapper.focused{border:1px solid rgba(29,136,53,0.8);-webkit-box-shadow:0 0 8px rgba(29,136,53,0.6);-moz-box-shadow:0 0 8px rgba(29,136,53,0.6);box-shadow:0 0 8px rgba(29,136,53,0.6)}.modal-editor .CodeMirror-scroll,.modal-file-upload .CodeMirror-scroll{height:250px}#keyboard-shortcuts ul{*zoom:1;list-style:none;margin:0;padding:0}#keyboard-shortcuts ul:before,#keyboard-shortcuts ul:after{display:table;content:"";line-height:0}#keyboard-shortcuts ul:after{clear:both}#keyboard-shortcuts li{width:50%;float:left;list-style:none;margin:0;padding:0}#keyboard-shortcuts h4{font-size:1em;line-height:2;padding-left:2em}#keyboard-shortcuts dt,#keyboard-shortcuts dd{line-height:1.5}#keyboard-shortcuts dt{float:left;text-align:right;width:6em;margin:0 0 0 -2em;padding:0}#keyboard-shortcuts dd{margin:0 0 0 5em}.document-wrapper article h3{line-height:1;margin-bottom:10px}.document-wrapper .document{color:#111;position:relative;white-space:pre}.document-wrapper .document .null,.document-wrapper .document .bool,.document-wrapper .document .z,.document-wrapper .document .b{color:#0086b3}.document-wrapper .document .num,.document-wrapper .document .n{color:#40A070}.document-wrapper .document .quoted,.document-wrapper .document .q{color:#D20}.document-wrapper .document .quoted .string,.document-wrapper .document .q .string,.document-wrapper .document .quoted .s,.document-wrapper .document .q .s{color:#D14}.document-wrapper .document .quoted .string a:link,.document-wrapper .document .q .string a:link,.document-wrapper .document .quoted .s a:link,.document-wrapper .document .q .s a:link,.document-wrapper .document .quoted .string a:visited,.document-wrapper .document .q .string a:visited,.document-wrapper .document .quoted .s a:visited,.document-wrapper .document .q .s a:visited{color:#D14;text-decoration:underline}.document-wrapper .document .quoted .string a:hover,.document-wrapper .document .q .string a:hover,.document-wrapper .document .quoted .s a:hover,.document-wrapper .document .q .s a:hover,.document-wrapper .document .quoted .string a:active,.document-wrapper .document .q .string a:active,.document-wrapper .document .quoted .s a:active,.document-wrapper .document .q .s a:active{color:#0058E1}.document-wrapper .document .re{color:#009926}.document-wrapper .document .ref .ref-ref .v .s,.document-wrapper .document .ref .ref-db .v .s,.document-wrapper .document .ref .ref-id .v .s{cursor:pointer;border-bottom:1px dotted #D14}.document-wrapper .document .ref .ref-ref .v .s:hover,.document-wrapper .document .ref .ref-db .v .s:hover,.document-wrapper .document .ref .ref-id .v .s:hover{color:#1d8835;border-bottom:1px solid #1d8835}.document-wrapper .document .ref .ref-id .v.n{cursor:pointer;border-bottom:1px dotted #D14;border-bottom-color:#40A070}.document-wrapper .document .ref .ref-id .v.n:hover{color:#1d8835;border-bottom:1px solid #1d8835}.document-wrapper .document var{font-style:normal}.document-wrapper .document .p{position:relative}.document-wrapper .document .p .ellipsis,.document-wrapper .document .p .e{display:none;cursor:pointer}.document-wrapper .document .p .ellipsis .summary,.document-wrapper .document .p .e .summary,.document-wrapper .document .p .ellipsis q,.document-wrapper .document .p .e q{color:#998;font-style:italic}.document-wrapper .document .p .collapser,.document-wrapper .document .p .c,.document-wrapper .document .p button{display:block;cursor:pointer;position:absolute;height:16px;width:16px;left:-16px;top:0;padding:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.document-wrapper .document .p .collapser:after,.document-wrapper .document .p .c:after,.document-wrapper .document .p button:after{display:block;position:absolute;left:4px;top:6px;height:0;width:0;content:' ';border:4px solid transparent;border-top-color:#c8c8bf}.document-wrapper .document .p .collapser:hover:after,.document-wrapper .document .p .c:hover:after,.document-wrapper .document .p button:hover:after,.document-wrapper .document .p .collapser:active:after,.document-wrapper .document .p .c:active:after,.document-wrapper .document .p button:active:after{border-top-color:#998}.document-wrapper .document .p button{border:none;background-color:transparent}.document-wrapper .document .p.collapsed button:after{left:6px;top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.document-wrapper .document .p.collapsed button:hover:after,.document-wrapper .document .p.collapsed button:active:after{border-top-color:transparent;border-left-color:#998}.document-wrapper .document .p.collapsed .ellipsis,.document-wrapper .document .p.collapsed .e{display:inline}.document-wrapper .document .p.collapsed .collapser:after,.document-wrapper .document .p.collapsed .c:after{top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.document-wrapper .document .p.collapsed .collapser:hover:after,.document-wrapper .document .p.collapsed .c:hover:after,.document-wrapper .document .p.collapsed .collapser:active:after,.document-wrapper .document .p.collapsed .c:active:after{border-top-color:transparent;border-left-color:#998}.document-wrapper .document .p.collapsed > .v{height:0;width:0;overflow:hidden;display:inline-block;visibility:hidden}.index-details li{color:#111;position:relative;white-space:pre;white-space:normal}.index-details li .null,.index-details li .bool,.index-details li .z,.index-details li .b{color:#0086b3}.index-details li .num,.index-details li .n{color:#40A070}.index-details li .quoted,.index-details li .q{color:#D20}.index-details li .quoted .string,.index-details li .q .string,.index-details li .quoted .s,.index-details li .q .s{color:#D14}.index-details li .quoted .string a:link,.index-details li .q .string a:link,.index-details li .quoted .s a:link,.index-details li .q .s a:link,.index-details li .quoted .string a:visited,.index-details li .q .string a:visited,.index-details li .quoted .s a:visited,.index-details li .q .s a:visited{color:#D14;text-decoration:underline}.index-details li .quoted .string a:hover,.index-details li .q .string a:hover,.index-details li .quoted .s a:hover,.index-details li .q .s a:hover,.index-details li .quoted .string a:active,.index-details li .q .string a:active,.index-details li .quoted .s a:active,.index-details li .q .s a:active{color:#0058E1}.index-details li .re{color:#009926}.index-details li .ref .ref-ref .v .s,.index-details li .ref .ref-db .v .s,.index-details li .ref .ref-id .v .s{cursor:pointer;border-bottom:1px dotted #D14}.index-details li .ref .ref-ref .v .s:hover,.index-details li .ref .ref-db .v .s:hover,.index-details li .ref .ref-id .v .s:hover{color:#1d8835;border-bottom:1px solid #1d8835}.index-details li .ref .ref-id .v.n{cursor:pointer;border-bottom:1px dotted #D14;border-bottom-color:#40A070}.index-details li .ref .ref-id .v.n:hover{color:#1d8835;border-bottom:1px solid #1d8835}.index-details li var{font-style:normal}.index-details li .p{position:relative}.index-details li .p .ellipsis,.index-details li .p .e{display:none;cursor:pointer}.index-details li .p .ellipsis .summary,.index-details li .p .e .summary,.index-details li .p .ellipsis q,.index-details li .p .e q{color:#998;font-style:italic}.index-details li .p .collapser,.index-details li .p .c,.index-details li .p button{display:block;cursor:pointer;position:absolute;height:16px;width:16px;left:-16px;top:0;padding:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.index-details li .p .collapser:after,.index-details li .p .c:after,.index-details li .p button:after{display:block;position:absolute;left:4px;top:6px;height:0;width:0;content:' ';border:4px solid transparent;border-top-color:#c8c8bf}.index-details li .p .collapser:hover:after,.index-details li .p .c:hover:after,.index-details li .p button:hover:after,.index-details li .p .collapser:active:after,.index-details li .p .c:active:after,.index-details li .p button:active:after{border-top-color:#998}.index-details li .p button{border:none;background-color:transparent}.index-details li .p.collapsed button:after{left:6px;top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.index-details li .p.collapsed button:hover:after,.index-details li .p.collapsed button:active:after{border-top-color:transparent;border-left-color:#998}.index-details li .p.collapsed .ellipsis,.index-details li .p.collapsed .e{display:inline}.index-details li .p.collapsed .collapser:after,.index-details li .p.collapsed .c:after{top:4px;border-top-color:transparent;border-left-color:#c8c8bf}.index-details li .p.collapsed .collapser:hover:after,.index-details li .p.collapsed .c:hover:after,.index-details li .p.collapsed .collapser:active:after,.index-details li .p.collapsed .c:active:after{border-top-color:transparent;border-left-color:#998}.index-details li .p.collapsed > .v{height:0;width:0;overflow:hidden;display:inline-block;visibility:hidden}.cm-s-default span.cm-keyword{color:#111}.cm-s-default span.cm-atom{color:#0086b3}.cm-s-default span.cm-number{color:#40A070}.cm-s-default span.cm-def{color:#111}.cm-s-default span.cm-variable{color:#111}.cm-s-default span.cm-variable-2{color:#111}.cm-s-default span.cm-variable-3{color:#111}.cm-s-default span.cm-property{color:#111}.cm-s-default span.cm-operator{color:#111}.cm-s-default span.cm-comment{color:#111}.cm-s-default span.cm-string{color:#D14}.cm-s-default span.cm-string-2{color:#009926}.cm-s-default span.cm-meta{color:#111}.cm-s-default span.cm-error{color:red}.cm-s-default span.cm-qualifier{color:#111}.cm-s-default span.cm-builtin{color:#111}.cm-s-default span.cm-bracket{color:#111}.cm-s-default span.cm-tag{color:#111}.cm-s-default span.cm-attribute{color:#111}.cm-s-default span.cm-header{color:#111}.cm-s-default span.cm-quote{color:#111}.cm-s-default span.cm-hr{color:#111}.cm-s-default span.cm-link{color:#1d8835}.CodeMirror-focused div.CodeMirror-selected{background:#b4d6bc}.CodeMirror{font-family:'Source Code Pro',monospace;line-height:1.4em;background-color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.CodeMirror .error-line{background-color:#f2dede}.CodeMirror-gutters{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.welcome-links{margin:0;padding:0;list-style:none}.welcome-links li{display:inline;padding:0 10px;color:#729e7c}.welcome-links a:link,.welcome-links a:visited{color:#b9cfbd;-webkit-transition:color .2s ease-in-out;-moz-transition:color .2s ease-in-out;-o-transition:color .2s ease-in-out;transition:color .2s ease-in-out}.welcome-links a:hover,.welcome-links a:active{color:#fff}@media screen and (max-width:1200px){#documents .pagination li.next a:before{content:'Next '}#documents .pagination li.prev a:after{content:' Prev'}}@media screen and (max-width:860px),screen and (max-height:860px){.masthead.epic.welcome{padding:40px 20px}.masthead.epic.welcome h1{font-size:90px}.masthead.epic.welcome h2{font-size:60px}.masthead.epic.welcome p{font-size:24px}}@media screen and (max-width:860px){.masthead{padding:40px 20px;margin-right:-20px;margin-left:-20px}.masthead.epic{padding:40px 20px}.masthead.epic h1{font-size:90px}.masthead.epic h2{font-size:60px}.masthead.epic p{font-size:24px}.modal-editor{left:20px;right:20px;width:auto;margin-left:0}table th,table td{padding:4px 5px}table td.action-column{padding-top:2px}#documents .pagination li.prev a:after,#documents .pagination li.next a:before{content:''}#keyboard-shortcuts{width:440px;margin-left:-220px}}@media only screen and (max-width:480px),only screen and (max-height:680px){.masthead.epic.welcome h1{font-size:60px}.masthead.epic.welcome h2{font-size:40px}.masthead.epic.welcome p{font-size:20px}}@media only screen and (max-width:480px){.container{padding:0}.navbar .nav{float:none}.navbar .btn.search{display:inline-block;z-index:10}body.section-documents .navbar form,body.section-document .navbar form{display:none;height:0;overflow:hidden}.navbar .brand{display:none}body.section-servers .navbar .brand,body:not(.has-section) .navbar .brand{display:block;text-align:center;float:none}.navbar .nav-section{position:absolute;background:none}.navbar .nav-section .dropdown-menu{display:none}body.section-servers .navbar .nav-section.servers,body.section-servers .navbar .nav-section.server,body.section-servers .navbar .nav-section.database,body.section-servers .navbar .nav-section.collection,body.section-databases .navbar .nav-section.database,body.section-databases .navbar .nav-section.collection,body.section-collections .navbar .nav-section.servers,body.section-collections .navbar .nav-section.collection,body.section-documents .navbar .nav-section.servers,body.section-documents .navbar .nav-section.server,body.section-document .navbar .nav-section.servers,body.section-document .navbar .nav-section.server{display:none}body.section-databases .navbar .nav-section.servers,body.section-collections .navbar .nav-section.server,body.section-documents .navbar .nav-section.database,body.section-document .navbar .nav-section.database{display:inline-block;float:left;padding:16px 0 0 2px;z-index:1012}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle,body.section-collections .navbar .nav-section.server > a.dropdown-toggle,body.section-documents .navbar .nav-section.database > a.dropdown-toggle,body.section-document .navbar .nav-section.database > a.dropdown-toggle,body.section-databases .navbar .nav-section.servers > a,body.section-collections .navbar .nav-section.server > a,body.section-documents .navbar .nav-section.database > a,body.section-document .navbar .nav-section.database > a{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid#ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;z-index:10;overflow:visible}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-databases .navbar .nav-section.servers > a:hover,body.section-collections .navbar .nav-section.server > a:hover,body.section-documents .navbar .nav-section.database > a:hover,body.section-document .navbar .nav-section.database > a:hover,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.disabled,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.disabled,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-document .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-databases .navbar .nav-section.servers > a.disabled,body.section-collections .navbar .nav-section.server > a.disabled,body.section-documents .navbar .nav-section.database > a.disabled,body.section-document .navbar .nav-section.database > a.disabled,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle[disabled],body.section-collections .navbar .nav-section.server > a.dropdown-toggle[disabled],body.section-documents .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-document .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-databases .navbar .nav-section.servers > a[disabled],body.section-collections .navbar .nav-section.server > a[disabled],body.section-documents .navbar .nav-section.database > a[disabled],body.section-document .navbar .nav-section.database > a[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active{background-color:#ccc \9}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:first-child,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:first-child,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:first-child,body.section-document .navbar .nav-section.database > a.dropdown-toggle:first-child,body.section-databases .navbar .nav-section.servers > a:first-child,body.section-collections .navbar .nav-section.server > a:first-child,body.section-documents .navbar .nav-section.database > a:first-child,body.section-document .navbar .nav-section.database > a:first-child{*margin-left:0}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover,body.section-databases .navbar .nav-section.servers > a:hover,body.section-collections .navbar .nav-section.server > a:hover,body.section-documents .navbar .nav-section.database > a:hover,body.section-document .navbar .nav-section.database > a:hover,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:focus,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:focus,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-document .navbar .nav-section.database > a.dropdown-toggle:focus,body.section-databases .navbar .nav-section.servers > a:focus,body.section-collections .navbar .nav-section.server > a:focus,body.section-documents .navbar .nav-section.database > a:focus,body.section-document .navbar .nav-section.database > a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.active,body.section-document .navbar .nav-section.database > a.dropdown-toggle.active,body.section-databases .navbar .nav-section.servers > a.active,body.section-collections .navbar .nav-section.server > a.active,body.section-documents .navbar .nav-section.database > a.active,body.section-document .navbar .nav-section.database > a.active,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active,body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active,body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active,body.section-document .navbar .nav-section.database > a.dropdown-toggle:active,body.section-databases .navbar .nav-section.servers > a:active,body.section-collections .navbar .nav-section.server > a:active,body.section-documents .navbar .nav-section.database > a:active,body.section-document .navbar .nav-section.database > a:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle.disabled,body.section-collections .navbar .nav-section.server > a.dropdown-toggle.disabled,body.section-documents .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-document .navbar .nav-section.database > a.dropdown-toggle.disabled,body.section-databases .navbar .nav-section.servers > a.disabled,body.section-collections .navbar .nav-section.server > a.disabled,body.section-documents .navbar .nav-section.database > a.disabled,body.section-document .navbar .nav-section.database > a.disabled,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle[disabled],body.section-collections .navbar .nav-section.server > a.dropdown-toggle[disabled],body.section-documents .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-document .navbar .nav-section.database > a.dropdown-toggle[disabled],body.section-databases .navbar .nav-section.servers > a[disabled],body.section-collections .navbar .nav-section.server > a[disabled],body.section-documents .navbar .nav-section.database > a[disabled],body.section-document .navbar .nav-section.database > a[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}body.section-databases .navbar .nav-section.servers > a.dropdown-toggle .label,body.section-collections .navbar .nav-section.server > a.dropdown-toggle .label,body.section-documents .navbar .nav-section.database > a.dropdown-toggle .label,body.section-document .navbar .nav-section.database > a.dropdown-toggle .label,body.section-databases .navbar .nav-section.servers > a .label,body.section-collections .navbar .nav-section.server > a .label,body.section-documents .navbar .nav-section.database > a .label,body.section-document .navbar .nav-section.database > a .label,body.section-databases .navbar .nav-section.servers > a.dropdown-toggle .badge,body.section-collections .navbar .nav-section.server > a.dropdown-toggle .badge,body.section-documents .navbar .nav-section.database > a.dropdown-toggle .badge,body.section-document .navbar .nav-section.database > a.dropdown-toggle .badge,body.section-databases .navbar .nav-section.servers > a .badge,body.section-collections .navbar .nav-section.server > a .badge,body.section-documents .navbar .nav-section.database > a .badge,body.section-document .navbar .nav-section.database > a .badge{position:relative;top:-1px}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle,html.cssmask body.section-databases .navbar .nav-section.servers > a,html.cssmask body.section-collections .navbar .nav-section.server > a,html.cssmask body.section-documents .navbar .nav-section.database > a,html.cssmask body.section-document .navbar .nav-section.database > a{display:inline-block;position:relative;padding-left:8px;-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:before,html.cssmask body.section-collections .navbar .nav-section.server > a:before,html.cssmask body.section-documents .navbar .nav-section.database > a:before,html.cssmask body.section-document .navbar .nav-section.database > a:before{position:absolute;left:-9px;top:2px;height:23px;width:23px;content:" ";background-color:#fff;background-image:-webkit-gradient(linear,top left,bottom right,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(-45deg,#fff,#e6e6e6);background-image:-moz-linear-gradient(-45deg,#fff,#e6e6e6);background-image:-o-linear-gradient(-45deg,#fff,#e6e6e6);background-image:linear-gradient(-45deg,#fff,#e6e6e6);background-repeat:repeat-x;border-left:1px solid #d9d9d9;border-bottom:1px solid #bfbfbf;-webkit-border-radius:7px 0 7px 0;-moz-border-radius:7px 0 7px 0;border-radius:7px 0 7px 0;display:inline-block;-webkit-transform:rotate(45deg) skew(3deg,3deg);-moz-transform:rotate(45deg) skew(3deg,3deg);-ms-transform:rotate(45deg) skewX(3deg) skewY(3deg);-o-transform:rotate(45deg) skew(3deg,3deg);transform:rotate(45deg) skew(3deg,3deg);-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);box-shadow:inset 1px 0 0 rgba(255,255,255,0.2);-webkit-mask-image:-webkit-gradient(linear,left bottom,right top,from(#000),color-stop(0.5,#000),color-stop(0.5,transparent),to(transparent));-webkit-mask-image:-webkit-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-moz-mask-image:-moz-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-o-mask-image:-o-linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);mask-image:linear-gradient(45deg,#000,#000 25%,#000 50%,transparent 50%,transparent);-webkit-background-clip:content;-moz-background-clip:content;background-clip:content}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:hover:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:hover:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:hover:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:hover:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:hover:before,html.cssmask body.section-collections .navbar .nav-section.server > a:hover:before,html.cssmask body.section-documents .navbar .nav-section.database > a:hover:before,html.cssmask body.section-document .navbar .nav-section.database > a:hover:before{background-color:#e8e8e8;background-position:-10px -10px}html.cssmask body.section-databases .navbar .nav-section.servers > a.dropdown-toggle:active:before,html.cssmask body.section-collections .navbar .nav-section.server > a.dropdown-toggle:active:before,html.cssmask body.section-documents .navbar .nav-section.database > a.dropdown-toggle:active:before,html.cssmask body.section-document .navbar .nav-section.database > a.dropdown-toggle:active:before,html.cssmask body.section-databases .navbar .nav-section.servers > a:active:before,html.cssmask body.section-collections .navbar .nav-section.server > a:active:before,html.cssmask body.section-documents .navbar .nav-section.database > a:active:before,html.cssmask body.section-document .navbar .nav-section.database > a:active:before{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;-webkit-box-shadow:inset 0 3px 4px rgba(0,0,0,0.15);-moz-box-shadow:inset 0 3px 4px rgba(0,0,0,0.15);box-shadow:inset 0 3px 4px rgba(0,0,0,0.15)}body.section-databases .navbar .nav-section.servers.dropdown .dropdown-toggle,body.section-collections .navbar .nav-section.server.dropdown .dropdown-toggle,body.section-documents .navbar .nav-section.database.dropdown .dropdown-toggle,body.section-document .navbar .nav-section.database.dropdown .dropdown-toggle{padding:4px 14px}body.section-databases .navbar .nav-section.server,body.section-collections .navbar .nav-section.database,body.section-documents .navbar .nav-section.collection,body.section-document .navbar .nav-section.collection{width:12em;left:50%;margin-left:-6em;padding-top:20px;display:inline-block;float:none;text-align:center;z-index:1011}body.section-databases .navbar .nav-section.server > a,body.section-collections .navbar .nav-section.database > a,body.section-documents .navbar .nav-section.collection > a,body.section-document .navbar .nav-section.collection > a{font-family:"Rokkitt",serif;font-size:24px;line-height:24px}body.section-databases .navbar .nav-section.server .dropdown-toggle,body.section-collections .navbar .nav-section.database .dropdown-toggle,body.section-documents .navbar .nav-section.collection .dropdown-toggle,body.section-document .navbar .nav-section.collection .dropdown-toggle{padding:0}.masthead{text-align:center}.masthead .container{padding:0 20px}.masthead.epic h1{font-size:60px}.masthead.epic h2{font-size:40px}.masthead.epic p{font-size:20px}.app-section{border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}table,thead,tbody,th,td,tr{display:block}table{border:none}table thead tr{position:absolute;top:-9999px;left:-9999px}table tr{border:1px solid #DDD;border-bottom:none}table tr:last-child{border-bottom:1px solid #DDD}table tr:first-child,table tr:first-child > td:first-child{-webkit-border-top-left-radius:5px;-moz-border-radius-topleft:5px;border-top-left-radius:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-topright:5px;border-top-right-radius:5px}table tr:last-child,table tr:last-child > td:last-child{-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;border-bottom-right-radius:5px}table td{border:none;position:relative;padding-left:35%}table td:before{position:absolute;top:6px;left:6px;width:30%;padding-right:10px;white-space:nowrap;font-weight:700}#keyboard-shortcuts{width:360px;margin-left:-180px}#servers table td:nth-of-type(1):before{content:"name"}#servers table td:nth-of-type(2):before{content:"databases"}#servers table td:nth-of-type(3):before{content:"size"}#servers table td:nth-of-type(4),#servers table td.action-column{display:none}#databases table td:nth-of-type(1):before{content:"name"}#databases table td:nth-of-type(2):before{content:"collections"}#databases table td:nth-of-type(3):before{content:"size"}#databases table td:nth-of-type(4),#databases table td.action-column{display:none}#collections table td:nth-of-type(1):before{content:"name"}#collections table td:nth-of-type(2):before{content:"documents"}#collections table td:nth-of-type(3):before{content:"indexes"}#collections table td:nth-of-type(4),#collections table td.action-column{display:none}}

@@ script.js
/**
 * Genghis v2.3.11
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <justin@justinhileman.info>
 */
window.Modernizr=function(e,t,n){function r(e){b.cssText=e}function i(e,t){return typeof e===t}function o(e,t){return!!~(""+e).indexOf(t)}function s(e,t){for(var r in e){var i=e[r];if(!o(i,"-")&&b[i]!==n)return"pfx"==t?i:!0}return!1}function a(e,t,r){for(var o in e){var s=t[e[o]];if(s!==n)return r===!1?e[o]:i(s,"function")?s.bind(r||t):s}return!1}function l(e,t,n){var r=e.charAt(0).toUpperCase()+e.slice(1),o=(e+" "+w.join(r+" ")+r).split(" ");return i(t,"string")||i(t,"undefined")?s(o,t):(o=(e+" "+x.join(r+" ")+r).split(" "),a(o,t,n))}var c,u,d,f="2.6.2",h={},p=!0,m=t.documentElement,g="modernizr",v=t.createElement(g),b=v.style,y=({}.toString,"Webkit Moz O ms"),w=y.split(" "),x=y.toLowerCase().split(" "),C={},S=[],k=S.slice,T={}.hasOwnProperty;d=i(T,"undefined")||i(T.call,"undefined")?function(e,t){return t in e&&i(e.constructor.prototype[t],"undefined")}:function(e,t){return T.call(e,t)},Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError;var n=k.call(arguments,1),r=function(){if(this instanceof r){var i=function(){};i.prototype=t.prototype;var o=new i,s=t.apply(o,n.concat(k.call(arguments)));return Object(s)===s?s:o}return t.apply(e,n.concat(k.call(arguments)))};return r});for(var L in C)d(C,L)&&(u=L.toLowerCase(),h[u]=C[L](),S.push((h[u]?"":"no-")+u));return h.addTest=function(e,t){if("object"==typeof e)for(var r in e)d(e,r)&&h.addTest(r,e[r]);else{if(e=e.toLowerCase(),h[e]!==n)return h;t="function"==typeof t?t():t,"undefined"!=typeof p&&p&&(m.className+=" "+(t?"":"no-")+e),h[e]=t}return h},r(""),v=c=null,h._version=f,h._domPrefixes=x,h._cssomPrefixes=w,h.testProp=function(e){return s([e])},h.testAllProps=l,m.className=m.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+S.join(" "):""),h}(this,this.document),Modernizr.addTest("cssmask",Modernizr.testAllProps("maskRepeat")),Modernizr.addTest("textoverflow",Modernizr.testAllProps("textOverflow")),Modernizr.addTest("filereader",!!(window.File&&window.FileList&&window.FileReader)),Modernizr.addTest("fileinput",function(){if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0)|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|Pre\/1.2|Kindle\/(1.0|2.0|2.5|3.0))/))return!1;var e=document.createElement("input");return e.type="file",!e.disabled}),function(e,t){function n(e){var t=e.length,n=ot.type(e);return ot.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=pt[e]={};return ot.each(e.match(at)||[],function(e,n){t[n]=!0}),t}function i(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=ot.expando+Math.random()}function o(e,n,r){var i;if(r===t&&1===e.nodeType)if(i="data-"+n.replace(bt,"-$1").toLowerCase(),r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:vt.test(r)?JSON.parse(r):r}catch(o){}mt.set(e,n,r)}else r=t;return r}function s(){return!0}function a(){return!1}function l(){try{return V.activeElement}catch(e){}}function c(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function u(e,t,n){if(ot.isFunction(t))return ot.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ot.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Nt.test(t))return ot.filter(t,e,n);t=ot.filter(t,e)}return ot.grep(e,function(e){return tt.call(t,e)>=0!==n})}function d(e,t){return ot.nodeName(e,"table")&&ot.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function f(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function h(e){var t=jt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function p(e,t){for(var n=e.length,r=0;n>r;r++)gt.set(e[r],"globalEval",!t||gt.get(t[r],"globalEval"))}function m(e,t){var n,r,i,o,s,a,l,c;if(1===t.nodeType){if(gt.hasData(e)&&(o=gt.access(e),s=gt.set(t,o),c=o.events)){delete s.handle,s.events={};for(i in c)for(n=0,r=c[i].length;r>n;n++)ot.event.add(t,i,c[i][n])}mt.hasData(e)&&(a=mt.access(e),l=ot.extend({},a),mt.set(t,l))}}function g(e,n){var r=e.getElementsByTagName?e.getElementsByTagName(n||"*"):e.querySelectorAll?e.querySelectorAll(n||"*"):[];return n===t||n&&ot.nodeName(e,n)?ot.merge([e],r):r}function v(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ft.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function b(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Zt.length;i--;)if(t=Zt[i]+n,t in e)return t;return r}function y(e,t){return e=t||e,"none"===ot.css(e,"display")||!ot.contains(e.ownerDocument,e)}function w(t){return e.getComputedStyle(t,null)}function x(e,t){for(var n,r,i,o=[],s=0,a=e.length;a>s;s++)r=e[s],r.style&&(o[s]=gt.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&y(r)&&(o[s]=gt.access(r,"olddisplay",T(r.nodeName)))):o[s]||(i=y(r),(n&&"none"!==n||!i)&&gt.set(r,"olddisplay",i?n:ot.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function C(e,t,n){var r=Ut.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function S(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;4>o;o+=2)"margin"===n&&(s+=ot.css(e,n+Yt[o],!0,i)),r?("content"===n&&(s-=ot.css(e,"padding"+Yt[o],!0,i)),"margin"!==n&&(s-=ot.css(e,"border"+Yt[o]+"Width",!0,i))):(s+=ot.css(e,"padding"+Yt[o],!0,i),"padding"!==n&&(s+=ot.css(e,"border"+Yt[o]+"Width",!0,i)));return s}function k(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=w(e),s=ot.support.boxSizing&&"border-box"===ot.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Bt(e,t,o),(0>i||null==i)&&(i=e.style[t]),qt.test(i))return i;r=s&&(ot.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+S(e,t,n||(s?"border":"content"),r,o)+"px"}function T(e){var t=V,n=Xt[e];return n||(n=L(e,t),"none"!==n&&n||(zt=(zt||ot("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(zt[0].contentWindow||zt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=L(e,t),zt.detach()),Xt[e]=n),n}function L(e,t){var n=ot(t.createElement(e)).appendTo(t.body),r=ot.css(n[0],"display");return n.remove(),r}function E(e,t,n,r){var i;if(ot.isArray(t))ot.each(t,function(t,i){n||tn.test(e)?r(e,i):E(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==ot.type(t))r(e,t);else for(i in t)E(e+"["+i+"]",t[i],n,r)}function N(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(at)||[];if(ot.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function A(e,t,n,r){function i(a){var l;return o[a]=!0,ot.each(e[a]||[],function(e,a){var c=a(t,n,r);return"string"!=typeof c||s||o[c]?s?!(l=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),l}var o={},s=e===yn;return i(t.dataTypes[0])||!o["*"]&&i("*")}function D(e,n){var r,i,o=ot.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);return i&&ot.extend(!0,e,i),e}function M(e,n,r){for(var i,o,s,a,l=e.contents,c=e.dataTypes;"*"===c[0];)c.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("Content-Type"));if(i)for(o in l)if(l[o]&&l[o].test(i)){c.unshift(o);break}if(c[0]in r)s=c[0];else{for(o in r){if(!c[0]||e.converters[o+" "+c[0]]){s=o;break}a||(a=o)}s=s||a}return s?(s!==c[0]&&c.unshift(s),r[s]):void 0}function I(e,t,n,r){var i,o,s,a,l,c={},u=e.dataTypes.slice();if(u[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(s=c[l+" "+o]||c["* "+o],!s)for(i in c)if(a=i.split(" "),a[1]===o&&(s=c[l+" "+a[0]]||c["* "+a[0]])){s===!0?s=c[i]:c[i]!==!0&&(o=a[0],u.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(d){return{state:"parsererror",error:s?d:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function $(){return setTimeout(function(){Nn=t}),Nn=ot.now()}function O(e,t,n){for(var r,i=(On[t]||[]).concat(On["*"]),o=0,s=i.length;s>o;o++)if(r=i[o].call(n,t,e))return r}function P(e,t,n){var r,i,o=0,s=$n.length,a=ot.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Nn||$(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,s=0,l=c.tweens.length;l>s;s++)c.tweens[s].run(o);return a.notifyWith(e,[c,o,n]),1>o&&l?n:(a.resolveWith(e,[c]),!1)},c=a.promise({elem:e,props:ot.extend({},t),opts:ot.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Nn||$(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ot.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)c.tweens[n].run(1);return t?a.resolveWith(e,[c,t]):a.rejectWith(e,[c,t]),this}}),u=c.props;for(F(u,c.opts.specialEasing);s>o;o++)if(r=$n[o].call(c,e,u,c.opts))return r;return ot.map(u,O,c),ot.isFunction(c.opts.start)&&c.opts.start.call(e,c),ot.fx.timer(ot.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function F(e,t){var n,r,i,o,s;for(n in e)if(r=ot.camelCase(n),i=t[r],o=e[n],ot.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),s=ot.cssHooks[r],s&&"expand"in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function G(e,n,r){var i,o,s,a,l,c,u=this,d={},f=e.style,h=e.nodeType&&y(e),p=gt.get(e,"fxshow");r.queue||(l=ot._queueHooks(e,"fx"),null==l.unqueued&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,u.always(function(){u.always(function(){l.unqueued--,ot.queue(e,"fx").length||l.empty.fire()})})),1===e.nodeType&&("height"in n||"width"in n)&&(r.overflow=[f.overflow,f.overflowX,f.overflowY],"inline"===ot.css(e,"display")&&"none"===ot.css(e,"float")&&(f.display="inline-block")),r.overflow&&(f.overflow="hidden",u.always(function(){f.overflow=r.overflow[0],f.overflowX=r.overflow[1],f.overflowY=r.overflow[2]}));for(i in n)if(o=n[i],Dn.exec(o)){if(delete n[i],s=s||"toggle"===o,o===(h?"hide":"show")){if("show"!==o||!p||p[i]===t)continue;h=!0}d[i]=p&&p[i]||ot.style(e,i)}if(!ot.isEmptyObject(d)){p?"hidden"in p&&(h=p.hidden):p=gt.access(e,"fxshow",{}),s&&(p.hidden=!h),h?ot(e).show():u.done(function(){ot(e).hide()}),u.done(function(){var t;gt.remove(e,"fxshow");for(t in d)ot.style(e,t,d[t])});for(i in d)a=O(h?p[i]:0,i,u),i in p||(p[i]=a.start,h&&(a.end=a.start,a.start="width"===i||"height"===i?1:0))}}function H(e,t,n,r,i){return new H.prototype.init(e,t,n,r,i)}function j(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Yt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function R(e){return ot.isWindow(e)?e:9===e.nodeType&&e.defaultView}var _,B,z=typeof t,W=e.location,V=e.document,U=V.documentElement,q=e.jQuery,K=e.$,X={},J=[],Q="2.0.2",Y=J.concat,Z=J.push,et=J.slice,tt=J.indexOf,nt=X.toString,rt=X.hasOwnProperty,it=Q.trim,ot=function(e,t){return new ot.fn.init(e,t,_)},st=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,at=/\S+/g,lt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ct=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ut=/^-ms-/,dt=/-([\da-z])/gi,ft=function(e,t){return t.toUpperCase()},ht=function(){V.removeEventListener("DOMContentLoaded",ht,!1),e.removeEventListener("load",ht,!1),ot.ready()};ot.fn=ot.prototype={jquery:Q,constructor:ot,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:lt.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof ot?n[0]:n,ot.merge(this,ot.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:V,!0)),ct.test(i[1])&&ot.isPlainObject(n))for(i in n)ot.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}return o=V.getElementById(i[2]),o&&o.parentNode&&(this.length=1,this[0]=o),this.context=V,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ot.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),ot.makeArray(e,this))},selector:"",length:0,toArray:function(){return et.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=ot.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ot.each(this,e,t)},ready:function(e){return ot.ready.promise().done(e),this},slice:function(){return this.pushStack(et.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(ot.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:Z,sort:[].sort,splice:[].splice},ot.fn.init.prototype=ot.fn,ot.extend=ot.fn.extend=function(){var e,n,r,i,o,s,a=arguments[0]||{},l=1,c=arguments.length,u=!1;for("boolean"==typeof a&&(u=a,a=arguments[1]||{},l=2),"object"==typeof a||ot.isFunction(a)||(a={}),c===l&&(a=this,--l);c>l;l++)if(null!=(e=arguments[l]))for(n in e)r=a[n],i=e[n],a!==i&&(u&&i&&(ot.isPlainObject(i)||(o=ot.isArray(i)))?(o?(o=!1,s=r&&ot.isArray(r)?r:[]):s=r&&ot.isPlainObject(r)?r:{},a[n]=ot.extend(u,s,i)):i!==t&&(a[n]=i));return a},ot.extend({expando:"jQuery"+(Q+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===ot&&(e.$=K),t&&e.jQuery===ot&&(e.jQuery=q),ot},isReady:!1,readyWait:1,holdReady:function(e){e?ot.readyWait++:ot.ready(!0)},ready:function(e){(e===!0?--ot.readyWait:ot.isReady)||(ot.isReady=!0,e!==!0&&--ot.readyWait>0||(B.resolveWith(V,[ot]),ot.fn.trigger&&ot(V).trigger("ready").off("ready")))},isFunction:function(e){return"function"===ot.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):"object"==typeof e||"function"==typeof e?X[nt.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==ot.type(e)||e.nodeType||ot.isWindow(e))return!1;try{if(e.constructor&&!rt.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||V;var r=ct.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ot.buildFragment([e],t,i),i&&ot(i).remove(),ot.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var n,r;if(!e||"string"!=typeof e)return null;try{r=new DOMParser,n=r.parseFromString(e,"text/xml")}catch(i){n=t}return(!n||n.getElementsByTagName("parsererror").length)&&ot.error("Invalid XML: "+e),n},noop:function(){},globalEval:function(e){var t,n=eval;e=ot.trim(e),e&&(1===e.indexOf("use strict")?(t=V.createElement("script"),t.text=e,V.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(ut,"ms-").replace(dt,ft)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,s=e.length,a=n(e);if(r){if(a)for(;s>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(a)for(;s>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:function(e){return null==e?"":it.call(e)},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?ot.merge(r,"string"==typeof e?[e]:e):Z.call(r,e)),r},inArray:function(e,t,n){return null==t?-1:tt.call(t,e,n)},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,s=e.length,a=n(e),l=[];if(a)for(;s>o;o++)i=t(e[o],o,r),null!=i&&(l[l.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(l[l.length]=i);return Y.apply([],l)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),ot.isFunction(e)?(i=et.call(arguments,2),o=function(){return e.apply(n||this,i.concat(et.call(arguments)))},o.guid=e.guid=e.guid||ot.guid++,o):t},access:function(e,n,r,i,o,s,a){var l=0,c=e.length,u=null==r;if("object"===ot.type(r)){o=!0;for(l in r)ot.access(e,n,l,r[l],!0,s,a)}else if(i!==t&&(o=!0,ot.isFunction(i)||(a=!0),u&&(a?(n.call(e,i),n=null):(u=n,n=function(e,t,n){return u.call(ot(e),n)})),n))for(;c>l;l++)n(e[l],r,a?i:i.call(e[l],l,n(e[l],r)));return o?e:u?n.call(e):c?n(e[0],r):s},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),ot.ready.promise=function(t){return B||(B=ot.Deferred(),"complete"===V.readyState?setTimeout(ot.ready):(V.addEventListener("DOMContentLoaded",ht,!1),e.addEventListener("load",ht,!1))),B.promise(t)},ot.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){X["[object "+t+"]"]=t.toLowerCase()}),_=ot(V),function(e,t){function n(e,t,n,r){var i,o,s,a,l,c,u,d,f,h;if((t?t.ownerDocument||t:W)!==F&&P(t),t=t||F,n=n||[],!e||"string"!=typeof e)return n;if(1!==(a=t.nodeType)&&9!==a)return[];if(H&&!r){if(i=St.exec(e))if(s=i[1]){if(9===a){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&B(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return it.apply(n,t.getElementsByTagName(e)),n;if((s=i[3])&&E.getElementsByClassName&&t.getElementsByClassName)return it.apply(n,t.getElementsByClassName(s)),n}if(E.qsa&&(!j||!j.test(e))){if(d=u=z,f=t,h=9===a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(c=m(e),(u=t.getAttribute("id"))?d=u.replace(Lt,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",l=c.length;l--;)c[l]=d+g(c[l]);f=vt.test(e)&&t.parentNode||t,h=c.join(",")}if(h)try{return it.apply(n,f.querySelectorAll(h)),n}catch(p){}finally{u||t.removeAttribute("id")}}}return k(e.replace(pt,"$1"),t,n,r)}function r(e){return Ct.test(e+"")}function i(){function e(n,r){return t.push(n+=" ")>A.cacheLength&&delete e[t.shift()],e[n]=r}var t=[];return e}function o(e){return e[z]=!0,e}function s(e){var t=F.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function a(e,t,n){e=e.split("|");for(var r,i=e.length,o=n?null:t;i--;)(r=A.attrHandle[e[i]])&&r!==t||(A.attrHandle[e[i]]=o)}function l(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function c(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function u(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:void 0}function d(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||Z)-(~e.sourceIndex||Z);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function f(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function h(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function p(e){return o(function(t){return t=+t,o(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function m(e,t){var r,i,o,s,a,l,c,u=K[e+" "];if(u)return t?0:u.slice(0);for(a=e,l=[],c=A.preFilter;a;){(!r||(i=mt.exec(a)))&&(i&&(a=a.slice(i[0].length)||a),l.push(o=[])),r=!1,(i=gt.exec(a))&&(r=i.shift(),o.push({value:r,type:i[0].replace(pt," ")}),a=a.slice(r.length));for(s in A.filter)!(i=xt[s].exec(a))||c[s]&&!(i=c[s](i))||(r=i.shift(),o.push({value:r,type:s,matches:i}),a=a.slice(r.length));if(!r)break}return t?a.length:a?n.error(e):K(e,l).slice(0)}function g(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function v(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=U++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,s){var a,l,c,u=V+" "+o;if(s){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,s))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[z]||(t[z]={}),(l=c[r])&&l[0]===u){if((a=l[1])===!0||a===N)return a===!0}else if(l=c[r]=[u],l[1]=e(t,n,s)||N,l[1]===!0)return!0}}function b(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function y(e,t,n,r,i){for(var o,s=[],a=0,l=e.length,c=null!=t;l>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),c&&t.push(a));return s}function w(e,t,n,r,i,s){return r&&!r[z]&&(r=w(r)),i&&!i[z]&&(i=w(i,s)),o(function(o,s,a,l){var c,u,d,f=[],h=[],p=s.length,m=o||S(t||"*",a.nodeType?[a]:a,[]),g=!e||!o&&t?m:y(m,f,e,a,l),v=n?i||(o?e:p||r)?[]:s:g;if(n&&n(g,v,a,l),r)for(c=y(v,h),r(c,[],a,l),u=c.length;u--;)(d=c[u])&&(v[h[u]]=!(g[h[u]]=d));if(o){if(i||e){if(i){for(c=[],u=v.length;u--;)(d=v[u])&&c.push(g[u]=d);i(null,v=[],c,l)}for(u=v.length;u--;)(d=v[u])&&(c=i?at.call(o,d):f[u])>-1&&(o[c]=!(s[c]=d))}}else v=y(v===s?v.splice(p,v.length):v),i?i(null,s,v,l):it.apply(s,v)})}function x(e){for(var t,n,r,i=e.length,o=A.relative[e[0].type],s=o||A.relative[" "],a=o?1:0,l=v(function(e){return e===t},s,!0),c=v(function(e){return at.call(t,e)>-1},s,!0),u=[function(e,n,r){return!o&&(r||n!==$)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>a;a++)if(n=A.relative[e[a].type])u=[v(b(u),n)];else{if(n=A.filter[e[a].type].apply(null,e[a].matches),n[z]){for(r=++a;i>r&&!A.relative[e[r].type];r++);return w(a>1&&b(u),a>1&&g(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(pt,"$1"),n,r>a&&x(e.slice(a,r)),i>r&&x(e=e.slice(r)),i>r&&g(e))}u.push(n)}return b(u)}function C(e,t){var r=0,i=t.length>0,s=e.length>0,a=function(o,a,l,c,u){var d,f,h,p=[],m=0,g="0",v=o&&[],b=null!=u,w=$,x=o||s&&A.find.TAG("*",u&&a.parentNode||a),C=V+=null==w?1:Math.random()||.1;for(b&&($=a!==F&&a,N=r);null!=(d=x[g]);g++){if(s&&d){for(f=0;h=e[f++];)if(h(d,a,l)){c.push(d);break}b&&(V=C,N=++r)}i&&((d=!h&&d)&&m--,o&&v.push(d))}if(m+=g,i&&g!==m){for(f=0;h=t[f++];)h(v,p,a,l);if(o){if(m>0)for(;g--;)v[g]||p[g]||(p[g]=nt.call(c));p=y(p)}it.apply(c,p),b&&!o&&p.length>0&&m+t.length>1&&n.uniqueSort(c)}return b&&(V=C,$=w),v};return i?o(a):a}function S(e,t,r){for(var i=0,o=t.length;o>i;i++)n(e,t[i],r);return r}function k(e,t,n,r){var i,o,s,a,l,c=m(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&E.getById&&9===t.nodeType&&H&&A.relative[o[1].type]){if(t=(A.find.ID(s.matches[0].replace(Et,Nt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=xt.needsContext.test(e)?0:o.length;i--&&(s=o[i],!A.relative[a=s.type]);)if((l=A.find[a])&&(r=l(s.matches[0].replace(Et,Nt),vt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&g(o),!e)return it.apply(n,r),n;break}}return I(e,c)(r,t,!H,n,vt.test(e)),n}function T(){}var L,E,N,A,D,M,I,$,O,P,F,G,H,j,R,_,B,z="sizzle"+-new Date,W=e.document,V=0,U=0,q=i(),K=i(),X=i(),J=!1,Q=function(){return 0},Y=typeof t,Z=1<<31,et={}.hasOwnProperty,tt=[],nt=tt.pop,rt=tt.push,it=tt.push,st=tt.slice,at=tt.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},lt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ct="[\\x20\\t\\r\\n\\f]",ut="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",dt=ut.replace("w","w#"),ft="\\["+ct+"*("+ut+")"+ct+"*(?:([*^$|!~]?=)"+ct+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+dt+")|)|)"+ct+"*\\]",ht=":("+ut+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+ft.replace(3,8)+")*)|.*)\\)|)",pt=new RegExp("^"+ct+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ct+"+$","g"),mt=new RegExp("^"+ct+"*,"+ct+"*"),gt=new RegExp("^"+ct+"*([>+~]|"+ct+")"+ct+"*"),vt=new RegExp(ct+"*[+~]"),bt=new RegExp("="+ct+"*([^\\]'\"]*)"+ct+"*\\]","g"),yt=new RegExp(ht),wt=new RegExp("^"+dt+"$"),xt={ID:new RegExp("^#("+ut+")"),CLASS:new RegExp("^\\.("+ut+")"),TAG:new RegExp("^("+ut.replace("w","w*")+")"),ATTR:new RegExp("^"+ft),PSEUDO:new RegExp("^"+ht),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ct+"*(even|odd|(([+-]|)(\\d*)n|)"+ct+"*(?:([+-]|)"+ct+"*(\\d+)|))"+ct+"*\\)|)","i"),bool:new RegExp("^(?:"+lt+")$","i"),needsContext:new RegExp("^"+ct+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ct+"*((?:-\\d)?\\d*)"+ct+"*\\)|)(?=[^-]|$)","i")},Ct=/^[^{]+\{\s*\[native \w/,St=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,kt=/^(?:input|select|textarea|button)$/i,Tt=/^h\d$/i,Lt=/'|\\/g,Et=new RegExp("\\\\([\\da-f]{1,6}"+ct+"?|("+ct+")|.)","ig"),Nt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{it.apply(tt=st.call(W.childNodes),W.childNodes),tt[W.childNodes.length].nodeType}catch(At){it={apply:tt.length?function(e,t){rt.apply(e,st.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}M=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},E=n.support={},P=n.setDocument=function(e){var t=e?e.ownerDocument||e:W,n=t.parentWindow;return t!==F&&9===t.nodeType&&t.documentElement?(F=t,G=t.documentElement,H=!M(t),n&&n.frameElement&&n.attachEvent("onbeforeunload",function(){P()}),E.attributes=s(function(e){return e.innerHTML="<a href='#'></a>",a("type|href|height|width",c,"#"===e.firstChild.getAttribute("href")),a(lt,l,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),E.input=s(function(e){return e.innerHTML="<input>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),a("value",u,E.attributes&&E.input),E.getElementsByTagName=s(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),E.getElementsByClassName=s(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),E.getById=s(function(e){return G.appendChild(e).id=z,!t.getElementsByName||!t.getElementsByName(z).length}),E.getById?(A.find.ID=function(e,t){if(typeof t.getElementById!==Y&&H){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},A.filter.ID=function(e){var t=e.replace(Et,Nt);return function(e){return e.getAttribute("id")===t}}):(delete A.find.ID,A.filter.ID=function(e){var t=e.replace(Et,Nt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),A.find.TAG=E.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},A.find.CLASS=E.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&H?t.getElementsByClassName(e):void 0},R=[],j=[],(E.qsa=r(t.querySelectorAll))&&(s(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||j.push("\\["+ct+"*(?:value|"+lt+")"),e.querySelectorAll(":checked").length||j.push(":checked")}),s(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&j.push("[*^$]="+ct+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||j.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),j.push(",.*:")})),(E.matchesSelector=r(_=G.webkitMatchesSelector||G.mozMatchesSelector||G.oMatchesSelector||G.msMatchesSelector))&&s(function(e){E.disconnectedMatch=_.call(e,"div"),_.call(e,"[s!='']:x"),R.push("!=",ht)}),j=j.length&&new RegExp(j.join("|")),R=R.length&&new RegExp(R.join("|")),B=r(G.contains)||G.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},E.sortDetached=s(function(e){return 1&e.compareDocumentPosition(t.createElement("div"))}),Q=G.compareDocumentPosition?function(e,n){if(e===n)return J=!0,0;var r=n.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(n);return r?1&r||!E.sortDetached&&n.compareDocumentPosition(e)===r?e===t||B(W,e)?-1:n===t||B(W,n)?1:O?at.call(O,e)-at.call(O,n):0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],l=[n];if(e===n)return J=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:O?at.call(O,e)-at.call(O,n):0;if(o===s)return d(e,n);for(r=e;r=r.parentNode;)a.unshift(r);for(r=n;r=r.parentNode;)l.unshift(r);for(;a[i]===l[i];)i++;return i?d(a[i],l[i]):a[i]===W?-1:l[i]===W?1:0},t):F},n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){if((e.ownerDocument||e)!==F&&P(e),t=t.replace(bt,"='$1']"),!(!E.matchesSelector||!H||R&&R.test(t)||j&&j.test(t)))try{var r=_.call(e,t);if(r||E.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return n(t,F,null,[e]).length>0},n.contains=function(e,t){return(e.ownerDocument||e)!==F&&P(e),B(e,t)},n.attr=function(e,n){(e.ownerDocument||e)!==F&&P(e);var r=A.attrHandle[n.toLowerCase()],i=r&&et.call(A.attrHandle,n.toLowerCase())?r(e,n,!H):t;return i===t?E.attributes||!H?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null:i},n.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},n.uniqueSort=function(e){var t,n=[],r=0,i=0;if(J=!E.detectDuplicates,O=!E.sortStable&&e.slice(0),e.sort(Q),J){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},D=n.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=D(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=D(t);return n},A=n.selectors={cacheLength:50,createPseudo:o,match:xt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Et,Nt),e[3]=(e[4]||e[5]||"").replace(Et,Nt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||n.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&n.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return xt.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&yt.test(r)&&(n=m(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Et,Nt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=q[e+" "];return t||(t=new RegExp("(^|"+ct+")"+e+"("+ct+"|$)"))&&q(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,r){return function(i){var o=n.attr(i,e);return null==o?"!="===t:t?(o+="","="===t?o===r:"!="===t?o!==r:"^="===t?r&&0===o.indexOf(r):"*="===t?r&&o.indexOf(r)>-1:"$="===t?r&&o.slice(-r.length)===r:"~="===t?(" "+o+" ").indexOf(r)>-1:"|="===t?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,h,p,m=o!==s?"nextSibling":"previousSibling",g=t.parentNode,v=a&&t.nodeName.toLowerCase(),b=!l&&!a;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(a?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[s?g.firstChild:g.lastChild],s&&b){for(u=g[z]||(g[z]={}),c=u[e]||[],h=c[0]===V&&c[1],f=c[0]===V&&c[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[V,h,f];break}}else if(b&&(c=(t[z]||(t[z]={}))[e])&&c[0]===V)f=c[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((a?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(b&&((d[z]||(d[z]={}))[e]=[V,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var r,i=A.pseudos[e]||A.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return i[z]?i(t):i.length>1?(r=[e,e,"",t],A.setFilters.hasOwnProperty(e.toLowerCase())?o(function(e,n){for(var r,o=i(e,t),s=o.length;s--;)r=at.call(e,o[s]),e[r]=!(n[r]=o[s])
}):function(e){return i(e,0,r)}):i}},pseudos:{not:o(function(e){var t=[],n=[],r=I(e.replace(pt,"$1"));return r[z]?o(function(e,t,n,i){for(var o,s=r(e,null,i,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:o(function(e){return function(t){return n(e,t).length>0}}),contains:o(function(e){return function(t){return(t.textContent||t.innerText||D(t)).indexOf(e)>-1}}),lang:o(function(e){return wt.test(e||"")||n.error("unsupported lang: "+e),e=e.replace(Et,Nt).toLowerCase(),function(t){var n;do if(n=H?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===G},focus:function(e){return e===F.activeElement&&(!F.hasFocus||F.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!A.pseudos.empty(e)},header:function(e){return Tt.test(e.nodeName)},input:function(e){return kt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:p(function(){return[0]}),last:p(function(e,t){return[t-1]}),eq:p(function(e,t,n){return[0>n?n+t:n]}),even:p(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:p(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:p(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:p(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(L in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})A.pseudos[L]=f(L);for(L in{submit:!0,reset:!0})A.pseudos[L]=h(L);I=n.compile=function(e,t){var n,r=[],i=[],o=X[e+" "];if(!o){for(t||(t=m(e)),n=t.length;n--;)o=x(t[n]),o[z]?r.push(o):i.push(o);o=X(e,C(i,r))}return o},A.pseudos.nth=A.pseudos.eq,T.prototype=A.filters=A.pseudos,A.setFilters=new T,E.sortStable=z.split("").sort(Q).join("")===z,P(),[0,0].sort(Q),E.detectDuplicates=J,ot.find=n,ot.expr=n.selectors,ot.expr[":"]=ot.expr.pseudos,ot.unique=n.uniqueSort,ot.text=n.getText,ot.isXMLDoc=n.isXML,ot.contains=n.contains}(e);var pt={};ot.Callbacks=function(e){e="string"==typeof e?pt[e]||r(e):ot.extend({},e);var n,i,o,s,a,l,c=[],u=!e.once&&[],d=function(t){for(n=e.memory&&t,i=!0,l=s||0,s=0,a=c.length,o=!0;c&&a>l;l++)if(c[l].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,c&&(u?u.length&&d(u.shift()):n?c=[]:f.disable())},f={add:function(){if(c){var t=c.length;!function r(t){ot.each(t,function(t,n){var i=ot.type(n);"function"===i?e.unique&&f.has(n)||c.push(n):n&&n.length&&"string"!==i&&r(n)})}(arguments),o?a=c.length:n&&(s=t,d(n))}return this},remove:function(){return c&&ot.each(arguments,function(e,t){for(var n;(n=ot.inArray(t,c,n))>-1;)c.splice(n,1),o&&(a>=n&&a--,l>=n&&l--)}),this},has:function(e){return e?ot.inArray(e,c)>-1:!(!c||!c.length)},empty:function(){return c=[],a=0,this},disable:function(){return c=u=n=t,this},disabled:function(){return!c},lock:function(){return u=t,n||f.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!c||i&&!u||(o?u.push(t):d(t)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!i}};return f},ot.extend({Deferred:function(e){var t=[["resolve","done",ot.Callbacks("once memory"),"resolved"],["reject","fail",ot.Callbacks("once memory"),"rejected"],["notify","progress",ot.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ot.Deferred(function(n){ot.each(t,function(t,o){var s=o[0],a=ot.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&ot.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ot.extend(e,r):r}},i={};return r.pipe=r.then,ot.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=et.call(arguments),s=o.length,a=1!==s||e&&ot.isFunction(e.promise)?s:0,l=1===a?e:ot.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?et.call(arguments):i,r===t?l.notifyWith(n,r):--a||l.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);s>i;i++)o[i]&&ot.isFunction(o[i].promise)?o[i].promise().done(c(i,r,o)).fail(l.reject).progress(c(i,n,t)):--a;return a||l.resolveWith(r,o),l.promise()}}),ot.support=function(t){var n=V.createElement("input"),r=V.createDocumentFragment(),i=V.createElement("div"),o=V.createElement("select"),s=o.appendChild(V.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=s.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,o.disabled=!0,t.optDisabled=!s.disabled,n=V.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,ot(function(){var n,r,o="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",s=V.getElementsByTagName("body")[0];s&&(n=V.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",ot.swap(s,null!=s.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(V.createElement("div")),r.style.cssText=i.style.cssText=o,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),s.removeChild(n))}),t):t}({});var mt,gt,vt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,bt=/([A-Z])/g;i.uid=1,i.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},i.prototype={key:function(e){if(!i.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=i.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,ot.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(ot.isEmptyObject(o))ot.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,n){var r=this.cache[this.key(e)];return n===t?r:r[n]},access:function(e,n,r){return n===t||n&&"string"==typeof n&&r===t?this.get(e,n):(this.set(e,n,r),r!==t?r:n)},remove:function(e,n){var r,i,o,s=this.key(e),a=this.cache[s];if(n===t)this.cache[s]={};else{ot.isArray(n)?i=n.concat(n.map(ot.camelCase)):(o=ot.camelCase(n),n in a?i=[n,o]:(i=o,i=i in a?[i]:i.match(at)||[])),r=i.length;for(;r--;)delete a[i[r]]}},hasData:function(e){return!ot.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},mt=new i,gt=new i,ot.extend({acceptData:i.accepts,hasData:function(e){return mt.hasData(e)||gt.hasData(e)},data:function(e,t,n){return mt.access(e,t,n)},removeData:function(e,t){mt.remove(e,t)},_data:function(e,t,n){return gt.access(e,t,n)},_removeData:function(e,t){gt.remove(e,t)}}),ot.fn.extend({data:function(e,n){var r,i,s=this[0],a=0,l=null;if(e===t){if(this.length&&(l=mt.get(s),1===s.nodeType&&!gt.get(s,"hasDataAttrs"))){for(r=s.attributes;a<r.length;a++)i=r[a].name,0===i.indexOf("data-")&&(i=ot.camelCase(i.slice(5)),o(s,i,l[i]));gt.set(s,"hasDataAttrs",!0)}return l}return"object"==typeof e?this.each(function(){mt.set(this,e)}):ot.access(this,function(n){var r,i=ot.camelCase(e);if(s&&n===t){if(r=mt.get(s,e),r!==t)return r;if(r=mt.get(s,i),r!==t)return r;if(r=o(s,i,t),r!==t)return r}else this.each(function(){var r=mt.get(this,i);mt.set(this,i,n),-1!==e.indexOf("-")&&r!==t&&mt.set(this,e,n)})},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){mt.remove(this,e)})}}),ot.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=gt.get(e,t),n&&(!r||ot.isArray(n)?r=gt.access(e,t,ot.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ot.queue(e,t),r=n.length,i=n.shift(),o=ot._queueHooks(e,t),s=function(){ot.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return gt.get(e,n)||gt.access(e,n,{empty:ot.Callbacks("once memory").add(function(){gt.remove(e,[t+"queue",n])})})}}),ot.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),arguments.length<r?ot.queue(this[0],e):n===t?this:this.each(function(){var t=ot.queue(this,e,n);ot._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&ot.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ot.dequeue(this,e)})},delay:function(e,t){return e=ot.fx?ot.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=ot.Deferred(),s=this,a=this.length,l=function(){--i||o.resolveWith(s,[s])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";a--;)r=gt.get(s[a],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var yt,wt,xt=/[\t\r\n\f]/g,Ct=/\r/g,St=/^(?:input|select|textarea|button)$/i;ot.fn.extend({attr:function(e,t){return ot.access(this,ot.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ot.removeAttr(this,e)})},prop:function(e,t){return ot.access(this,ot.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[ot.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,l="string"==typeof e&&e;if(ot.isFunction(e))return this.each(function(t){ot(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(at)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(xt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");n.className=ot.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,l=0===arguments.length||"string"==typeof e&&e;if(ot.isFunction(e))return this.each(function(t){ot(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(at)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(xt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?ot.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return ot.isFunction(e)?this.each(function(n){ot(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,s=ot(this),a=t,l=e.match(at)||[];i=l[o++];)a=r?a:!s.hasClass(i),s[a?"addClass":"removeClass"](i);else(n===z||"boolean"===n)&&(this.className&&gt.set(this,"__className__",this.className),this.className=this.className||e===!1?"":gt.get(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(xt," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=ot.isFunction(e),this.each(function(r){var o;1===this.nodeType&&(o=i?e.call(this,r,ot(this).val()):e,null==o?o="":"number"==typeof o?o+="":ot.isArray(o)&&(o=ot.map(o,function(e){return null==e?"":e+""})),n=ot.valHooks[this.type]||ot.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=ot.valHooks[o.type]||ot.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(Ct,""):null==r?"":r)}}}),ot.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,l=0>i?a:o?i:0;a>l;l++)if(n=r[l],!(!n.selected&&l!==i||(ot.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ot.nodeName(n.parentNode,"optgroup"))){if(t=ot(n).val(),o)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=ot.makeArray(t),s=i.length;s--;)r=i[s],(r.selected=ot.inArray(ot(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===z?ot.prop(e,n,r):(1===s&&ot.isXMLDoc(e)||(n=n.toLowerCase(),i=ot.attrHooks[n]||(ot.expr.match.bool.test(n)?wt:yt)),r===t?i&&"get"in i&&null!==(o=i.get(e,n))?o:(o=ot.find.attr(e,n),null==o?t:o):null!==r?i&&"set"in i&&(o=i.set(e,r,n))!==t?o:(e.setAttribute(n,r+""),r):(ot.removeAttr(e,n),void 0))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(at);if(o&&1===e.nodeType)for(;n=o[i++];)r=ot.propFix[n]||n,ot.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!ot.support.radioValue&&"radio"===t&&ot.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,s,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return s=1!==a||!ot.isXMLDoc(e),s&&(n=ot.propFix[n]||n,o=ot.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||St.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),wt={set:function(e,t,n){return t===!1?ot.removeAttr(e,n):e.setAttribute(n,n),n}},ot.each(ot.expr.match.bool.source.match(/\w+/g),function(e,n){var r=ot.expr.attrHandle[n]||ot.find.attr;ot.expr.attrHandle[n]=function(e,n,i){var o=ot.expr.attrHandle[n],s=i?t:(ot.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return ot.expr.attrHandle[n]=o,s}}),ot.support.optSelected||(ot.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),ot.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ot.propFix[this.toLowerCase()]=this}),ot.each(["radio","checkbox"],function(){ot.valHooks[this]={set:function(e,t){return ot.isArray(t)?e.checked=ot.inArray(ot(e).val(),t)>=0:void 0}},ot.support.checkOn||(ot.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var kt=/^key/,Tt=/^(?:mouse|contextmenu)|click/,Lt=/^(?:focusinfocus|focusoutblur)$/,Et=/^([^.]*)(?:\.(.+)|)$/;ot.event={global:{},add:function(e,n,r,i,o){var s,a,l,c,u,d,f,h,p,m,g,v=gt.get(e);if(v){for(r.handler&&(s=r,r=s.handler,o=s.selector),r.guid||(r.guid=ot.guid++),(c=v.events)||(c=v.events={}),(a=v.handle)||(a=v.handle=function(e){return typeof ot===z||e&&ot.event.triggered===e.type?t:ot.event.dispatch.apply(a.elem,arguments)},a.elem=e),n=(n||"").match(at)||[""],u=n.length;u--;)l=Et.exec(n[u])||[],p=g=l[1],m=(l[2]||"").split(".").sort(),p&&(f=ot.event.special[p]||{},p=(o?f.delegateType:f.bindType)||p,f=ot.event.special[p]||{},d=ot.extend({type:p,origType:g,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&ot.expr.match.needsContext.test(o),namespace:m.join(".")},s),(h=c[p])||(h=c[p]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,m,a)!==!1||e.addEventListener&&e.addEventListener(p,a,!1)),f.add&&(f.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),o?h.splice(h.delegateCount++,0,d):h.push(d),ot.event.global[p]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,l,c,u,d,f,h,p,m,g=gt.hasData(e)&&gt.get(e);if(g&&(l=g.events)){for(t=(t||"").match(at)||[""],c=t.length;c--;)if(a=Et.exec(t[c])||[],h=m=a[1],p=(a[2]||"").split(".").sort(),h){for(d=ot.event.special[h]||{},h=(r?d.delegateType:d.bindType)||h,f=l[h]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;o--;)u=f[o],!i&&m!==u.origType||n&&n.guid!==u.guid||a&&!a.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(f.splice(o,1),u.selector&&f.delegateCount--,d.remove&&d.remove.call(e,u));s&&!f.length&&(d.teardown&&d.teardown.call(e,p,g.handle)!==!1||ot.removeEvent(e,h,g.handle),delete l[h])}else for(h in l)ot.event.remove(e,h+t[c],n,r,!0);ot.isEmptyObject(l)&&(delete g.handle,gt.remove(e,"events"))}},trigger:function(n,r,i,o){var s,a,l,c,u,d,f,h=[i||V],p=rt.call(n,"type")?n.type:n,m=rt.call(n,"namespace")?n.namespace.split("."):[];if(a=l=i=i||V,3!==i.nodeType&&8!==i.nodeType&&!Lt.test(p+ot.event.triggered)&&(p.indexOf(".")>=0&&(m=p.split("."),p=m.shift(),m.sort()),u=p.indexOf(":")<0&&"on"+p,n=n[ot.expando]?n:new ot.Event(p,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:ot.makeArray(r,[n]),f=ot.event.special[p]||{},o||!f.trigger||f.trigger.apply(i,r)!==!1)){if(!o&&!f.noBubble&&!ot.isWindow(i)){for(c=f.delegateType||p,Lt.test(c+p)||(a=a.parentNode);a;a=a.parentNode)h.push(a),l=a;l===(i.ownerDocument||V)&&h.push(l.defaultView||l.parentWindow||e)}for(s=0;(a=h[s++])&&!n.isPropagationStopped();)n.type=s>1?c:f.bindType||p,d=(gt.get(a,"events")||{})[n.type]&&gt.get(a,"handle"),d&&d.apply(a,r),d=u&&a[u],d&&ot.acceptData(a)&&d.apply&&d.apply(a,r)===!1&&n.preventDefault();return n.type=p,o||n.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),r)!==!1||!ot.acceptData(i)||u&&ot.isFunction(i[p])&&!ot.isWindow(i)&&(l=i[u],l&&(i[u]=null),ot.event.triggered=p,i[p](),ot.event.triggered=t,l&&(i[u]=l)),n.result}},dispatch:function(e){e=ot.event.fix(e);var n,r,i,o,s,a=[],l=et.call(arguments),c=(gt.get(this,"events")||{})[e.type]||[],u=ot.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(a=ot.event.handlers.call(this,e,c),n=0;(o=a[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,r=0;(s=o.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(s.namespace))&&(e.handleObj=s,e.data=s.data,i=((ot.event.special[s.origType]||{}).handle||s.handler).apply(o.elem,l),i!==t&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,s,a=[],l=n.delegateCount,c=e.target;if(l&&c.nodeType&&(!e.button||"click"!==e.type))for(;c!==this;c=c.parentNode||this)if(c.disabled!==!0||"click"!==e.type){for(i=[],r=0;l>r;r++)s=n[r],o=s.selector+" ",i[o]===t&&(i[o]=s.needsContext?ot(o,this).index(c)>=0:ot.find(o,this,null,[c]).length),i[o]&&i.push(s);i.length&&a.push({elem:c,handlers:i})}return l<n.length&&a.push({elem:this,handlers:n.slice(l)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||V,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[ot.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=Tt.test(i)?this.mouseHooks:kt.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new ot.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=V),3===e.target.nodeType&&(e.target=e.target.parentNode),s.filter?s.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&ot.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return ot.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=ot.extend(new ot.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?ot.event.trigger(i,null,t):ot.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},ot.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},ot.Event=function(e,t){return this instanceof ot.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?s:a):this.type=e,t&&ot.extend(this,t),this.timeStamp=e&&e.timeStamp||ot.now(),this[ot.expando]=!0,void 0):new ot.Event(e,t)},ot.Event.prototype={isDefaultPrevented:a,isPropagationStopped:a,isImmediatePropagationStopped:a,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=s,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=s,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=s,this.stopPropagation()}},ot.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){ot.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!ot.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),ot.support.focusinBubbles||ot.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){ot.event.simulate(t,e.target,ot.event.fix(e),!0)};ot.event.special[t]={setup:function(){0===n++&&V.addEventListener(e,r,!0)},teardown:function(){0===--n&&V.removeEventListener(e,r,!0)}}}),ot.fn.extend({on:function(e,n,r,i,o){var s,l;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(l in e)this.on(l,n,r,e[l],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=a;else if(!i)return this;return 1===o&&(s=i,i=function(e){return ot().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=ot.guid++)),this.each(function(){ot.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,ot(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=a),this.each(function(){ot.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){ot.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ot.event.trigger(e,t,n,!0):void 0}});var Nt=/^.[^:#\[\.,]*$/,At=/^(?:parents|prev(?:Until|All))/,Dt=ot.expr.match.needsContext,Mt={children:!0,contents:!0,next:!0,prev:!0};ot.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(ot(e).filter(function(){for(t=0;i>t;t++)if(ot.contains(r[t],this))return!0}));for(t=0;i>t;t++)ot.find(e,r[t],n);return n=this.pushStack(i>1?ot.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=ot(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(ot.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(u(this,e||[],!0))},filter:function(e){return this.pushStack(u(this,e||[],!1))},is:function(e){return!!u(this,"string"==typeof e&&Dt.test(e)?ot(e):e||[],!1).length},closest:function(e,t){for(var n,r=0,i=this.length,o=[],s=Dt.test(e)||"string"!=typeof e?ot(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&ot.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?ot.unique(o):o)},index:function(e){return e?"string"==typeof e?tt.call(ot(e),this[0]):tt.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?ot(e,t):ot.makeArray(e&&e.nodeType?[e]:e),r=ot.merge(this.get(),n);return this.pushStack(ot.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ot.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ot.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ot.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")},nextAll:function(e){return ot.dir(e,"nextSibling")},prevAll:function(e){return ot.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ot.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ot.dir(e,"previousSibling",n)},siblings:function(e){return ot.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ot.sibling(e.firstChild)},contents:function(e){return e.contentDocument||ot.merge([],e.childNodes)}},function(e,t){ot.fn[e]=function(n,r){var i=ot.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ot.filter(r,i)),this.length>1&&(Mt[e]||ot.unique(i),At.test(e)&&i.reverse()),this.pushStack(i)}}),ot.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ot.find.matchesSelector(r,e)?[r]:[]:ot.find.matches(e,ot.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){for(var i=[],o=r!==t;(e=e[n])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&ot(e).is(r))break;i.push(e)}return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var It=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,$t=/<([\w:]+)/,Ot=/<|&#?\w+;/,Pt=/<(?:script|style|link)/i,Ft=/^(?:checkbox|radio)$/i,Gt=/checked\s*(?:[^=]|=\s*.checked.)/i,Ht=/^$|\/(?:java|ecma)script/i,jt=/^true\/(.*)/,Rt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,_t={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};_t.optgroup=_t.option,_t.tbody=_t.tfoot=_t.colgroup=_t.caption=_t.thead,_t.th=_t.td,ot.fn.extend({text:function(e){return ot.access(this,function(e){return e===t?ot.text(this):this.empty().append((this[0]&&this[0].ownerDocument||V).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=d(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=d(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ot.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||ot.cleanData(g(n)),n.parentNode&&(t&&ot.contains(n.ownerDocument,n)&&p(g(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ot.cleanData(g(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ot.clone(this,e,t)})},html:function(e){return ot.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t&&1===n.nodeType)return n.innerHTML;if("string"==typeof e&&!Pt.test(e)&&!_t[($t.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(It,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(ot.cleanData(g(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=ot.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),ot(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=Y.apply([],e);var r,i,o,s,a,l,c=0,u=this.length,d=this,p=u-1,m=e[0],v=ot.isFunction(m);if(v||!(1>=u||"string"!=typeof m||ot.support.checkClone)&&Gt.test(m))return this.each(function(r){var i=d.eq(r);v&&(e[0]=m.call(this,r,i.html())),i.domManip(e,t,n)});if(u&&(r=ot.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=ot.map(g(r,"script"),f),s=o.length;u>c;c++)a=r,c!==p&&(a=ot.clone(a,!0,!0),s&&ot.merge(o,g(a,"script"))),t.call(this[c],a,c);if(s)for(l=o[o.length-1].ownerDocument,ot.map(o,h),c=0;s>c;c++)a=o[c],Ht.test(a.type||"")&&!gt.access(a,"globalEval")&&ot.contains(l,a)&&(a.src?ot._evalUrl(a.src):ot.globalEval(a.textContent.replace(Rt,"")))}return this}}),ot.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ot.fn[e]=function(e){for(var n,r=[],i=ot(e),o=i.length-1,s=0;o>=s;s++)n=s===o?this:this.clone(!0),ot(i[s])[t](n),Z.apply(r,n.get());return this.pushStack(r)}}),ot.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),l=ot.contains(e.ownerDocument,e);if(!(ot.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ot.isXMLDoc(e)))for(s=g(a),o=g(e),r=0,i=o.length;i>r;r++)v(o[r],s[r]);if(t)if(n)for(o=o||g(e),s=s||g(a),r=0,i=o.length;i>r;r++)m(o[r],s[r]);else m(e,a);return s=g(a,"script"),s.length>0&&p(s,!l&&g(e,"script")),a},buildFragment:function(e,t,n,r){for(var i,o,s,a,l,c,u=0,d=e.length,f=t.createDocumentFragment(),h=[];d>u;u++)if(i=e[u],i||0===i)if("object"===ot.type(i))ot.merge(h,i.nodeType?[i]:i);else if(Ot.test(i)){for(o=o||f.appendChild(t.createElement("div")),s=($t.exec(i)||["",""])[1].toLowerCase(),a=_t[s]||_t._default,o.innerHTML=a[1]+i.replace(It,"<$1></$2>")+a[2],c=a[0];c--;)o=o.firstChild;ot.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));for(f.textContent="",u=0;i=h[u++];)if((!r||-1===ot.inArray(i,r))&&(l=ot.contains(i.ownerDocument,i),o=g(f.appendChild(i),"script"),l&&p(o),n))for(c=0;i=o[c++];)Ht.test(i.type||"")&&n.push(i);return f},cleanData:function(e){for(var n,r,o,s,a,l,c=ot.event.special,u=0;(r=e[u])!==t;u++){if(i.accepts(r)&&(a=r[gt.expando],a&&(n=gt.cache[a]))){if(o=Object.keys(n.events||{}),o.length)for(l=0;(s=o[l])!==t;l++)c[s]?ot.event.remove(r,s):ot.removeEvent(r,s,n.handle);gt.cache[a]&&delete gt.cache[a]}delete mt.cache[r[mt.expando]]}},_evalUrl:function(e){return ot.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),ot.fn.extend({wrapAll:function(e){var t;return ot.isFunction(e)?this.each(function(t){ot(this).wrapAll(e.call(this,t))}):(this[0]&&(t=ot(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return ot.isFunction(e)?this.each(function(t){ot(this).wrapInner(e.call(this,t))}):this.each(function(){var t=ot(this),n=t.contents();
n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ot.isFunction(e);return this.each(function(n){ot(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ot.nodeName(this,"body")||ot(this).replaceWith(this.childNodes)}).end()}});var Bt,zt,Wt=/^(none|table(?!-c[ea]).+)/,Vt=/^margin/,Ut=new RegExp("^("+st+")(.*)$","i"),qt=new RegExp("^("+st+")(?!px)[a-z%]+$","i"),Kt=new RegExp("^([+-])=("+st+")","i"),Xt={BODY:"block"},Jt={position:"absolute",visibility:"hidden",display:"block"},Qt={letterSpacing:0,fontWeight:400},Yt=["Top","Right","Bottom","Left"],Zt=["Webkit","O","Moz","ms"];ot.fn.extend({css:function(e,n){return ot.access(this,function(e,n,r){var i,o,s={},a=0;if(ot.isArray(n)){for(i=w(e),o=n.length;o>a;a++)s[n[a]]=ot.css(e,n[a],!1,i);return s}return r!==t?ot.style(e,n,r):ot.css(e,n)},e,n,arguments.length>1)},show:function(){return x(this,!0)},hide:function(){return x(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:y(this))?ot(this).show():ot(this).hide()})}}),ot.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Bt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,s,a,l=ot.camelCase(n),c=e.style;return n=ot.cssProps[l]||(ot.cssProps[l]=b(c,l)),a=ot.cssHooks[n]||ot.cssHooks[l],r===t?a&&"get"in a&&(o=a.get(e,!1,i))!==t?o:c[n]:(s=typeof r,"string"===s&&(o=Kt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(ot.css(e,n)),s="number"),null==r||"number"===s&&isNaN(r)||("number"!==s||ot.cssNumber[l]||(r+="px"),ot.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(c[n]="inherit"),a&&"set"in a&&(r=a.set(e,r,i))===t||(c[n]=r)),void 0)}},css:function(e,n,r,i){var o,s,a,l=ot.camelCase(n);return n=ot.cssProps[l]||(ot.cssProps[l]=b(e.style,l)),a=ot.cssHooks[n]||ot.cssHooks[l],a&&"get"in a&&(o=a.get(e,!0,r)),o===t&&(o=Bt(e,n,i)),"normal"===o&&n in Qt&&(o=Qt[n]),""===r||r?(s=parseFloat(o),r===!0||ot.isNumeric(s)?s||0:o):o}}),Bt=function(e,n,r){var i,o,s,a=r||w(e),l=a?a.getPropertyValue(n)||a[n]:t,c=e.style;return a&&(""!==l||ot.contains(e.ownerDocument,e)||(l=ot.style(e,n)),qt.test(l)&&Vt.test(n)&&(i=c.width,o=c.minWidth,s=c.maxWidth,c.minWidth=c.maxWidth=c.width=l,l=a.width,c.width=i,c.minWidth=o,c.maxWidth=s)),l},ot.each(["height","width"],function(e,t){ot.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&Wt.test(ot.css(e,"display"))?ot.swap(e,Jt,function(){return k(e,t,r)}):k(e,t,r):void 0},set:function(e,n,r){var i=r&&w(e);return C(e,n,r?S(e,t,r,ot.support.boxSizing&&"border-box"===ot.css(e,"boxSizing",!1,i),i):0)}}}),ot(function(){ot.support.reliableMarginRight||(ot.cssHooks.marginRight={get:function(e,t){return t?ot.swap(e,{display:"inline-block"},Bt,[e,"marginRight"]):void 0}}),!ot.support.pixelPosition&&ot.fn.position&&ot.each(["top","left"],function(e,t){ot.cssHooks[t]={get:function(e,n){return n?(n=Bt(e,t),qt.test(n)?ot(e).position()[t]+"px":n):void 0}}})}),ot.expr&&ot.expr.filters&&(ot.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0},ot.expr.filters.visible=function(e){return!ot.expr.filters.hidden(e)}),ot.each({margin:"",padding:"",border:"Width"},function(e,t){ot.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Yt[r]+t]=o[r]||o[r-2]||o[0];return i}},Vt.test(e)||(ot.cssHooks[e+t].set=C)});var en=/%20/g,tn=/\[\]$/,nn=/\r?\n/g,rn=/^(?:submit|button|image|reset|file)$/i,on=/^(?:input|select|textarea|keygen)/i;ot.fn.extend({serialize:function(){return ot.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ot.prop(this,"elements");return e?ot.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ot(this).is(":disabled")&&on.test(this.nodeName)&&!rn.test(e)&&(this.checked||!Ft.test(e))}).map(function(e,t){var n=ot(this).val();return null==n?null:ot.isArray(n)?ot.map(n,function(e){return{name:t.name,value:e.replace(nn,"\r\n")}}):{name:t.name,value:n.replace(nn,"\r\n")}}).get()}}),ot.param=function(e,n){var r,i=[],o=function(e,t){t=ot.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=ot.ajaxSettings&&ot.ajaxSettings.traditional),ot.isArray(e)||e.jquery&&!ot.isPlainObject(e))ot.each(e,function(){o(this.name,this.value)});else for(r in e)E(r,e[r],n,o);return i.join("&").replace(en,"+")},ot.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ot.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ot.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var sn,an,ln=ot.now(),cn=/\?/,un=/#.*$/,dn=/([?&])_=[^&]*/,fn=/^(.*?):[ \t]*([^\r\n]*)$/gm,hn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,vn=ot.fn.load,bn={},yn={},wn="*/".concat("*");try{an=W.href}catch(xn){an=V.createElement("a"),an.href="",an=an.href}sn=gn.exec(an.toLowerCase())||[],ot.fn.load=function(e,n,r){if("string"!=typeof e&&vn)return vn.apply(this,arguments);var i,o,s,a=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l),e=e.slice(0,l)),ot.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),a.length>0&&ot.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){s=arguments,a.html(i?ot("<div>").append(ot.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){a.each(r,s||[e.responseText,t,e])}),this},ot.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ot.fn[t]=function(e){return this.on(t,e)}}),ot.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:an,type:"GET",isLocal:hn.test(sn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":wn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ot.parseJSON,"text xml":ot.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?D(D(e,ot.ajaxSettings),t):D(ot.ajaxSettings,e)},ajaxPrefilter:N(bn),ajaxTransport:N(yn),ajax:function(e,n){function r(e,n,r,a){var c,d,b,y,x,S=n;2!==w&&(w=2,l&&clearTimeout(l),i=t,s=a||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(y=M(f,C,r)),y=I(f,y,C,c),c?(f.ifModified&&(x=C.getResponseHeader("Last-Modified"),x&&(ot.lastModified[o]=x),x=C.getResponseHeader("etag"),x&&(ot.etag[o]=x)),204===e||"HEAD"===f.type?S="nocontent":304===e?S="notmodified":(S=y.state,d=y.data,b=y.error,c=!b)):(b=S,(e||!S)&&(S="error",0>e&&(e=0))),C.status=e,C.statusText=(n||S)+"",c?m.resolveWith(h,[d,S,C]):m.rejectWith(h,[C,S,b]),C.statusCode(v),v=t,u&&p.trigger(c?"ajaxSuccess":"ajaxError",[C,f,c?d:b]),g.fireWith(h,[C,S]),u&&(p.trigger("ajaxComplete",[C,f]),--ot.active||ot.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,s,a,l,c,u,d,f=ot.ajaxSetup({},n),h=f.context||f,p=f.context&&(h.nodeType||h.jquery)?ot(h):ot.event,m=ot.Deferred(),g=ot.Callbacks("once memory"),v=f.statusCode||{},b={},y={},w=0,x="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===w){if(!a)for(a={};t=fn.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===w?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return w||(e=y[n]=y[n]||e,b[e]=t),this},overrideMimeType:function(e){return w||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>w)for(t in e)v[t]=[v[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||x;return i&&i.abort(t),r(0,t),this}};if(m.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,f.url=((e||f.url||an)+"").replace(un,"").replace(mn,sn[1]+"//"),f.type=n.method||n.type||f.method||f.type,f.dataTypes=ot.trim(f.dataType||"*").toLowerCase().match(at)||[""],null==f.crossDomain&&(c=gn.exec(f.url.toLowerCase()),f.crossDomain=!(!c||c[1]===sn[1]&&c[2]===sn[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(sn[3]||("http:"===sn[1]?"80":"443")))),f.data&&f.processData&&"string"!=typeof f.data&&(f.data=ot.param(f.data,f.traditional)),A(bn,f,n,C),2===w)return C;u=f.global,u&&0===ot.active++&&ot.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!pn.test(f.type),o=f.url,f.hasContent||(f.data&&(o=f.url+=(cn.test(o)?"&":"?")+f.data,delete f.data),f.cache===!1&&(f.url=dn.test(o)?o.replace(dn,"$1_="+ln++):o+(cn.test(o)?"&":"?")+"_="+ln++)),f.ifModified&&(ot.lastModified[o]&&C.setRequestHeader("If-Modified-Since",ot.lastModified[o]),ot.etag[o]&&C.setRequestHeader("If-None-Match",ot.etag[o])),(f.data&&f.hasContent&&f.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+wn+"; q=0.01":""):f.accepts["*"]);for(d in f.headers)C.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(f.beforeSend.call(h,C,f)===!1||2===w))return C.abort();x="abort";for(d in{success:1,error:1,complete:1})C[d](f[d]);if(i=A(yn,f,n,C)){C.readyState=1,u&&p.trigger("ajaxSend",[C,f]),f.async&&f.timeout>0&&(l=setTimeout(function(){C.abort("timeout")},f.timeout));try{w=1,i.send(b,r)}catch(S){if(!(2>w))throw S;r(-1,S)}}else r(-1,"No Transport");return C},getJSON:function(e,t,n){return ot.get(e,t,n,"json")},getScript:function(e,n){return ot.get(e,t,n,"script")}}),ot.each(["get","post"],function(e,n){ot[n]=function(e,r,i,o){return ot.isFunction(r)&&(o=o||i,i=r,r=t),ot.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),ot.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ot.globalEval(e),e}}}),ot.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ot.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=ot("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),V.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Cn=[],Sn=/(=)\?(?=&|$)|\?\?/;ot.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Cn.pop()||ot.expando+"_"+ln++;return this[e]=!0,e}}),ot.ajaxPrefilter("json jsonp",function(n,r,i){var o,s,a,l=n.jsonp!==!1&&(Sn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Sn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=ot.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Sn,"$1"+o):n.jsonp!==!1&&(n.url+=(cn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return a||ot.error(o+" was not called"),a[0]},n.dataTypes[0]="json",s=e[o],e[o]=function(){a=arguments},i.always(function(){e[o]=s,n[o]&&(n.jsonpCallback=r.jsonpCallback,Cn.push(o)),a&&ot.isFunction(s)&&s(a[0]),a=s=t}),"script"):void 0}),ot.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var kn=ot.ajaxSettings.xhr(),Tn={0:200,1223:204},Ln=0,En={};e.ActiveXObject&&ot(e).on("unload",function(){for(var e in En)En[e]();En=t}),ot.support.cors=!!kn&&"withCredentials"in kn,ot.support.ajax=kn=!!kn,ot.ajaxTransport(function(e){var n;return ot.support.cors||kn&&!e.crossDomain?{send:function(r,i){var o,s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)a[o]=e.xhrFields[o];e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)a.setRequestHeader(o,r[o]);n=function(e){return function(){n&&(delete En[s],n=a.onload=a.onerror=null,"abort"===e?a.abort():"error"===e?i(a.status||404,a.statusText):i(Tn[a.status]||a.status,a.statusText,"string"==typeof a.responseText?{text:a.responseText}:t,a.getAllResponseHeaders()))}},a.onload=n(),a.onerror=n("error"),n=En[s=Ln++]=n("abort"),a.send(e.hasContent&&e.data||null)},abort:function(){n&&n()}}:void 0});var Nn,An,Dn=/^(?:toggle|show|hide)$/,Mn=new RegExp("^(?:([+-])=|)("+st+")([a-z%]*)$","i"),In=/queueHooks$/,$n=[G],On={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Mn.exec(t),o=i&&i[3]||(ot.cssNumber[e]?"":"px"),s=(ot.cssNumber[e]||"px"!==o&&+r)&&Mn.exec(ot.css(n.elem,e)),a=1,l=20;if(s&&s[3]!==o){o=o||s[3],i=i||[],s=+r||1;do a=a||".5",s/=a,ot.style(n.elem,e,s+o);while(a!==(a=n.cur()/r)&&1!==a&&--l)}return i&&(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};ot.Animation=ot.extend(P,{tweener:function(e,t){ot.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],On[n]=On[n]||[],On[n].unshift(t)},prefilter:function(e,t){t?$n.unshift(e):$n.push(e)}}),ot.Tween=H,H.prototype={constructor:H,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ot.cssNumber[n]?"":"px")},cur:function(){var e=H.propHooks[this.prop];return e&&e.get?e.get(this):H.propHooks._default.get(this)},run:function(e){var t,n=H.propHooks[this.prop];return this.pos=t=this.options.duration?ot.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):H.propHooks._default.set(this),this}},H.prototype.init.prototype=H.prototype,H.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ot.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ot.fx.step[e.prop]?ot.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ot.cssProps[e.prop]]||ot.cssHooks[e.prop])?ot.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},H.propHooks.scrollTop=H.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ot.each(["toggle","show","hide"],function(e,t){var n=ot.fn[t];ot.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(j(t,!0),e,r,i)}}),ot.fn.extend({fadeTo:function(e,t,n,r){return this.filter(y).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=ot.isEmptyObject(e),o=ot.speed(t,n,r),s=function(){var t=P(this,ot.extend({},e),o);(i||gt.get(this,"finish"))&&t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=ot.timers,s=gt.get(this);if(n)s[n]&&s[n].stop&&i(s[n]);else for(n in s)s[n]&&s[n].stop&&In.test(n)&&i(s[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&ot.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=gt.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=ot.timers,s=r?r.length:0;for(n.finish=!0,ot.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),ot.each({slideDown:j("show"),slideUp:j("hide"),slideToggle:j("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ot.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),ot.speed=function(e,t,n){var r=e&&"object"==typeof e?ot.extend({},e):{complete:n||!n&&t||ot.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ot.isFunction(t)&&t};return r.duration=ot.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ot.fx.speeds?ot.fx.speeds[r.duration]:ot.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){ot.isFunction(r.old)&&r.old.call(this),r.queue&&ot.dequeue(this,r.queue)},r},ot.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ot.timers=[],ot.fx=H.prototype.init,ot.fx.tick=function(){var e,n=ot.timers,r=0;for(Nn=ot.now();r<n.length;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||ot.fx.stop(),Nn=t},ot.fx.timer=function(e){e()&&ot.timers.push(e)&&ot.fx.start()},ot.fx.interval=13,ot.fx.start=function(){An||(An=setInterval(ot.fx.tick,ot.fx.interval))},ot.fx.stop=function(){clearInterval(An),An=null},ot.fx.speeds={slow:600,fast:200,_default:400},ot.fx.step={},ot.expr&&ot.expr.filters&&(ot.expr.filters.animated=function(e){return ot.grep(ot.timers,function(t){return e===t.elem}).length}),ot.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){ot.offset.setOffset(this,e,t)});var n,r,i=this[0],o={top:0,left:0},s=i&&i.ownerDocument;if(s)return n=s.documentElement,ot.contains(n,i)?(typeof i.getBoundingClientRect!==z&&(o=i.getBoundingClientRect()),r=R(s),{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}):o},ot.offset={setOffset:function(e,t,n){var r,i,o,s,a,l,c,u=ot.css(e,"position"),d=ot(e),f={};"static"===u&&(e.style.position="relative"),a=d.offset(),o=ot.css(e,"top"),l=ot.css(e,"left"),c=("absolute"===u||"fixed"===u)&&(o+l).indexOf("auto")>-1,c?(r=d.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(l)||0),ot.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):d.css(f)}},ot.fn.extend({position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===ot.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ot.nodeName(e[0],"html")||(r=e.offset()),r.top+=ot.css(e[0],"borderTopWidth",!0),r.left+=ot.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-ot.css(n,"marginTop",!0),left:t.left-r.left-ot.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||U;e&&!ot.nodeName(e,"html")&&"static"===ot.css(e,"position");)e=e.offsetParent;return e||U})}}),ot.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(n,r){var i="pageYOffset"===r;ot.fn[n]=function(o){return ot.access(this,function(n,o,s){var a=R(n);return s===t?a?a[r]:n[o]:(a?a.scrollTo(i?e.pageXOffset:s,i?s:e.pageYOffset):n[o]=s,void 0)},n,o,arguments.length,null)}}),ot.each({Height:"height",Width:"width"},function(e,n){ot.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){ot.fn[i]=function(i,o){var s=arguments.length&&(r||"boolean"!=typeof i),a=r||(i===!0||o===!0?"margin":"border");return ot.access(this,function(n,r,i){var o;return ot.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?ot.css(n,r,a):ot.style(n,r,i,a)},n,s?i:t,s,null)}})}),ot.fn.size=function(){return this.length},ot.fn.andSelf=ot.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=ot:"function"==typeof define&&define.amd&&define("jquery",[],function(){return ot}),"object"==typeof e&&"object"==typeof e.document&&(e.jQuery=e.$=ot)}(window),function(e){e.fn.hoverIntent=function(t,n,r){var i={interval:100,sensitivity:7,timeout:0};i="object"==typeof t?e.extend(i,t):e.isFunction(n)?e.extend(i,{over:t,out:n,selector:r}):e.extend(i,{over:t,out:t,selector:n});var o,s,a,l,c=function(e){o=e.pageX,s=e.pageY},u=function(t,n){return n.hoverIntent_t=clearTimeout(n.hoverIntent_t),Math.abs(a-o)+Math.abs(l-s)<i.sensitivity?(e(n).off("mousemove.hoverIntent",c),n.hoverIntent_s=1,i.over.apply(n,[t])):(a=o,l=s,n.hoverIntent_t=setTimeout(function(){u(t,n)},i.interval),void 0)},d=function(e,t){return t.hoverIntent_t=clearTimeout(t.hoverIntent_t),t.hoverIntent_s=0,i.out.apply(t,[e])},f=function(t){var n=jQuery.extend({},t),r=this;r.hoverIntent_t&&(r.hoverIntent_t=clearTimeout(r.hoverIntent_t)),"mouseenter"==t.type?(a=n.pageX,l=n.pageY,e(r).on("mousemove.hoverIntent",c),1!=r.hoverIntent_s&&(r.hoverIntent_t=setTimeout(function(){u(n,r)},i.interval))):(e(r).off("mousemove.hoverIntent",c),1==r.hoverIntent_s&&(r.hoverIntent_t=setTimeout(function(){d(n,r)},i.timeout)))};return this.on({"mouseenter.hoverIntent":f,"mouseleave.hoverIntent":f},i.selector)}}(jQuery),!function(e){"use strict";e.extend({tablesorter:new function(){function t(e){"undefined"!=typeof console&&"undefined"!=typeof console.log?console.log(e):alert(e)}function n(e,n){t(e+" ("+((new Date).getTime()-n.getTime())+"ms)")}function r(t,n,r){if(!n)return"";var i=t.config,o=i.textExtraction,s="";return s="simple"===o?i.supportsTextContent?n.textContent:e(n).text():"function"==typeof o?o(n,t,r):"object"==typeof o&&o.hasOwnProperty(r)?o[r](n,t,r):i.supportsTextContent?n.textContent:e(n).text(),e.trim(s)}function i(e,n,i,o){for(var s,a=C.parsers.length,l=!1,c="",u=!0;""===c&&u;)i++,n[i]?(l=n[i].cells[o],c=r(e,l,o),e.config.debug&&t("Checking if value was empty on row "+i+", column: "+o+': "'+c+'"')):u=!1;for(;--a>=0;)if(s=C.parsers[a],s&&"text"!==s.id&&s.is&&s.is(c,e,l))return s;return C.getParserById("text")}function o(e){var n,r,o,s,a,l,c,u=e.config,d=u.$tbodies=u.$table.children("tbody:not(."+u.cssInfoBlock+")"),f="";if(0===d.length)return u.debug?t("*Empty table!* Not building a parser cache"):"";if(n=d[0].rows,n[0])for(r=[],o=n[0].cells.length,s=0;o>s;s++)a=u.$headers.filter(":not([colspan])"),a=a.add(u.$headers.filter('[colspan="1"]')).filter('[data-column="'+s+'"]:last'),l=u.headers[s],c=C.getParserById(C.getData(a,l,"sorter")),u.empties[s]=C.getData(a,l,"empty")||u.emptyTo||(u.emptyToBottom?"bottom":"top"),u.strings[s]=C.getData(a,l,"string")||u.stringTo||"max",c||(c=i(e,n,-1,s)),u.debug&&(f+="column:"+s+"; parser:"+c.id+"; string:"+u.strings[s]+"; empty: "+u.empties[s]+"\n"),r.push(c);u.debug&&t(f),u.parsers=r}function s(i){var o,s,a,l,c,u,d,f,h,p,m=i.tBodies,g=i.config,v=g.parsers,b=[];if(g.cache={},!v)return g.debug?t("*Empty table!* Not building a cache"):"";for(g.debug&&(p=new Date),g.showProcessing&&C.isProcessing(i,!0),d=0;d<m.length;d++)if(g.cache[d]={row:[],normalized:[]},!e(m[d]).hasClass(g.cssInfoBlock)){for(o=m[d]&&m[d].rows.length||0,s=m[d].rows[0]&&m[d].rows[0].cells.length||0,c=0;o>c;++c)if(f=e(m[d].rows[c]),h=[],f.hasClass(g.cssChildRow))g.cache[d].row[g.cache[d].row.length-1]=g.cache[d].row[g.cache[d].row.length-1].add(f);else{for(g.cache[d].row.push(f),u=0;s>u;++u)a=r(i,f[0].cells[u],u),l=v[u].format(a,i,f[0].cells[u],u),h.push(l),"numeric"===(v[u].type||"").toLowerCase()&&(b[u]=Math.max(Math.abs(l)||0,b[u]||0));h.push(g.cache[d].normalized.length),g.cache[d].normalized.push(h)}g.cache[d].colMax=b}g.showProcessing&&C.isProcessing(i),g.debug&&n("Building cache for "+o+" rows",p)}function a(t,r){var i,o,s,a,l,c,u,d,f,h,p,m,g=t.config,v=t.tBodies,b=[],y=g.cache;if(y[0]){for(g.debug&&(m=new Date),f=0;f<v.length;f++)if(l=e(v[f]),l.length&&!l.hasClass(g.cssInfoBlock)){for(c=C.processTbody(t,l,!0),i=y[f].row,o=y[f].normalized,s=o.length,a=s?o[0].length-1:0,u=0;s>u;u++)if(p=o[u][a],b.push(i[p]),!g.appender||!g.removeRows)for(h=i[p].length,d=0;h>d;d++)c.append(i[p][d]);C.processTbody(t,c,!1)}g.appender&&g.appender(t,b),g.debug&&n("Rebuilt table",m),r||C.applyWidget(t),e(t).trigger("sortEnd",t)}}function l(t){var n,r,i,o,s,a,l,c,u,d,f,h,p=[],m={},g=0,v=e(t).find("thead:eq(0), tfoot").children("tr");for(n=0;n<v.length;n++)for(a=v[n].cells,r=0;r<a.length;r++){for(s=a[r],l=s.parentNode.rowIndex,c=l+"-"+s.cellIndex,u=s.rowSpan||1,d=s.colSpan||1,"undefined"==typeof p[l]&&(p[l]=[]),i=0;i<p[l].length+1;i++)if("undefined"==typeof p[l][i]){f=i;break}for(m[c]=f,g=Math.max(f,g),e(s).attr({"data-column":f}),i=l;l+u>i;i++)for("undefined"==typeof p[i]&&(p[i]=[]),h=p[i],o=f;f+d>o;o++)h[o]="x"}return t.config.columns=g,m}function c(e){return/^d/i.test(e)||1===e}function u(r){var i,o,s,a,u,d,h,p=l(r),m=r.config;m.headerList=[],m.headerContent=[],m.debug&&(h=new Date),a=m.cssIcon?'<i class="'+m.cssIcon+'"></i>':"",m.$headers=e(r).find(m.selectorHeaders).each(function(t){o=e(this),i=m.headers[t],m.headerContent[t]=this.innerHTML,u=m.headerTemplate.replace(/\{content\}/g,this.innerHTML).replace(/\{icon\}/g,a),m.onRenderTemplate&&(s=m.onRenderTemplate.apply(o,[t,u]),s&&"string"==typeof s&&(u=s)),this.innerHTML='<div class="tablesorter-header-inner">'+u+"</div>",m.onRenderHeader&&m.onRenderHeader.apply(o,[t]),this.column=p[this.parentNode.rowIndex+"-"+this.cellIndex],this.order=c(C.getData(o,i,"sortInitialOrder")||m.sortInitialOrder)?[1,0,2]:[0,1,2],this.count=-1,this.lockedOrder=!1,d=C.getData(o,i,"lockedOrder")||!1,"undefined"!=typeof d&&d!==!1&&(this.order=this.lockedOrder=c(d)?[1,1,1]:[0,0,0]),o.addClass(m.cssHeader),m.headerList[t]=this,o.parent().addClass(m.cssHeaderRow),o.attr("tabindex",0)}),f(r),m.debug&&(n("Built headers:",h),t(m.$headers))}function d(e,t,n){var r=e.config;r.$table.find(r.selectorRemove).remove(),o(e),s(e),w(r.$table,t,n)}function f(t){var n,r=t.config;r.$headers.each(function(t,i){n="false"===C.getData(i,r.headers[t],"sorter"),i.sortDisabled=n,e(i)[n?"addClass":"removeClass"]("sorter-false")})}function h(t){var n,r,i,o,s=t.config,a=s.sortList,l=[s.cssAsc,s.cssDesc],c=e(t).find("tfoot tr").children().removeClass(l.join(" "));for(s.$headers.removeClass(l.join(" ")),o=a.length,r=0;o>r;r++)if(2!==a[r][1]&&(n=s.$headers.not(".sorter-false").filter('[data-column="'+a[r][0]+'"]'+(1===o?":last":"")),n.length))for(i=0;i<n.length;i++)n[i].sortDisabled||(n.eq(i).addClass(l[a[r][1]]),c.length&&c.filter('[data-column="'+a[r][0]+'"]').eq(i).addClass(l[a[r][1]]))}function p(t){if(t.config.widthFixed&&0===e(t).find("colgroup").length){var n=e("<colgroup>"),r=e(t).width();e(t.tBodies[0]).find("tr:first").children("td").each(function(){n.append(e("<col>").css("width",parseInt(e(this).width()/r*1e3,10)/10+"%"))}),e(t).prepend(n)}}function m(t,n){var r,i,o,s=t.config,a=n||s.sortList;s.sortList=[],e.each(a,function(t,n){r=[parseInt(n[0],10),parseInt(n[1],10)],o=s.headerList[r[0]],o&&(s.sortList.push(r),i=e.inArray(r[1],o.order),o.count=i>=0?i:r[1]%(s.sortReset?3:2))})}function g(e,t){return e&&e[t]?e[t].type||"":""}function v(t,n,r){var i,o,s,l,c,u=t.config,d=!r[u.sortMultiSortKey],f=e(t);if(f.trigger("sortStart",t),n.count=r[u.sortResetKey]?2:(n.count+1)%(u.sortReset?3:2),u.sortRestart&&(o=n,u.$headers.each(function(){this===o||!d&&e(this).is("."+u.cssDesc+",."+u.cssAsc)||(this.count=-1)})),o=n.column,d){if(u.sortList=[],null!==u.sortForce)for(i=u.sortForce,s=0;s<i.length;s++)i[s][0]!==o&&u.sortList.push(i[s]);if(l=n.order[n.count],2>l&&(u.sortList.push([o,l]),n.colSpan>1))for(s=1;s<n.colSpan;s++)u.sortList.push([o+s,l])}else if(u.sortAppend&&u.sortList.length>1&&C.isValueInArray(u.sortAppend[0][0],u.sortList)&&u.sortList.pop(),C.isValueInArray(o,u.sortList))for(s=0;s<u.sortList.length;s++)c=u.sortList[s],l=u.headerList[c[0]],c[0]===o&&(c[1]=l.order[l.count],2===c[1]&&(u.sortList.splice(s,1),l.count=-1));else if(l=n.order[n.count],2>l&&(u.sortList.push([o,l]),n.colSpan>1))for(s=1;s<n.colSpan;s++)u.sortList.push([o+s,l]);if(null!==u.sortAppend)for(i=u.sortAppend,s=0;s<i.length;s++)i[s][0]!==o&&u.sortList.push(i[s]);f.trigger("sortBegin",t),setTimeout(function(){h(t),b(t),a(t)},1)}function b(t){var r,i,o,s,a,l,c,u,d,f,h=0,p=t.config,m=p.sortList,v=m.length,b=t.tBodies.length;if(!p.serverSideSorting&&p.cache[0]){for(p.debug&&(r=new Date),o=0;b>o;o++)a=p.cache[o].colMax,l=p.cache[o].normalized,c=l.length,f=l&&l[0]?l[0].length-1:0,l.sort(function(n,r){for(i=0;v>i;i++){s=m[i][0],d=m[i][1],u=/n/i.test(g(p.parsers,s))?"Numeric":"Text",u+=0===d?"":"Desc",/Numeric/.test(u)&&p.strings[s]&&(h="boolean"==typeof p.string[p.strings[s]]?(0===d?1:-1)*(p.string[p.strings[s]]?-1:1):p.strings[s]?p.string[p.strings[s]]||0:0);var o=e.tablesorter["sort"+u](t,n[s],r[s],s,a[s],h);if(o)return o}return n[f]-r[f]});p.debug&&n("Sorting on "+m.toString()+" and dir "+d+" time",r)}}function y(e,t){e.trigger("updateComplete"),"function"==typeof t&&t(e[0])}function w(e,t,n){t===!1||e[0].isProcessing?y(e,n):e.trigger("sorton",[e[0].config.sortList,function(){y(e,n)}])}function x(t){var n,i,l=t.config,c=l.$table;l.$headers.find(l.selectorSort).add(l.$headers.filter(l.selectorSort)).unbind("mousedown.tablesorter mouseup.tablesorter sort.tablesorter keypress.tablesorter").bind("mousedown.tablesorter mouseup.tablesorter sort.tablesorter keypress.tablesorter",function(n,r){if(1!==(n.which||n.button)&&!/sort|keypress/.test(n.type)||"keypress"===n.type&&13!==n.which)return!1;if("mouseup"===n.type&&r!==!0&&(new Date).getTime()-i>250)return!1;if("mousedown"===n.type)return i=(new Date).getTime(),"INPUT"===n.target.tagName?"":!l.cancelSelection;l.delayInit&&!l.cache&&s(t);var o=/TH|TD/.test(this.tagName)?e(this):e(this).parents("th, td").filter(":first"),a=o[0];a.sortDisabled||v(t,a,n)}),l.cancelSelection&&l.$headers.attr("unselectable","on").bind("selectstart",!1).css({"user-select":"none",MozUserSelect:"none"}),c.unbind("sortReset update updateRows updateCell updateAll addRows sorton appendCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(".tablesorter ")).bind("sortReset.tablesorter",function(e){e.stopPropagation(),l.sortList=[],h(t),b(t),a(t)}).bind("updateAll.tablesorter",function(e,n,r){e.stopPropagation(),C.refreshWidgets(t,!0,!0),C.restoreHeaders(t),u(t),x(t),d(t,n,r)}).bind("update.tablesorter updateRows.tablesorter",function(e,n,r){e.stopPropagation(),f(t),d(t,n,r)}).bind("updateCell.tablesorter",function(n,i,o,s){n.stopPropagation(),c.find(l.selectorRemove).remove();var a,u,d,f=c.find("tbody"),h=f.index(e(i).parents("tbody").filter(":first")),p=e(i).parents("tr").filter(":first");i=e(i)[0],f.length&&h>=0&&(u=f.eq(h).find("tr").index(p),d=i.cellIndex,a=l.cache[h].normalized[u].length-1,l.cache[h].row[t.config.cache[h].normalized[u][a]]=p,l.cache[h].normalized[u][d]=l.parsers[d].format(r(t,i,d),t,i,d),w(c,o,s))}).bind("addRows.tablesorter",function(e,i,s,a){e.stopPropagation();var u,d=i.filter("tr").length,f=[],h=i[0].cells.length,p=c.find("tbody").index(i.parents("tbody").filter(":first"));for(l.parsers||o(t),u=0;d>u;u++){for(n=0;h>n;n++)f[n]=l.parsers[n].format(r(t,i[u].cells[n],n),t,i[u].cells[n],n);f.push(l.cache[p].row.length),l.cache[p].row.push([i[u]]),l.cache[p].normalized.push(f),f=[]}w(c,s,a)}).bind("sorton.tablesorter",function(e,n,r,i){e.stopPropagation(),c.trigger("sortStart",this),m(t,n),h(t),c.trigger("sortBegin",this),b(t),a(t,i),"function"==typeof r&&r(t)}).bind("appendCache.tablesorter",function(e,n,r){e.stopPropagation(),a(t,r),"function"==typeof n&&n(t)}).bind("applyWidgetId.tablesorter",function(e,n){e.stopPropagation(),C.getWidgetById(n).format(t,l,l.widgetOptions)}).bind("applyWidgets.tablesorter",function(e,n){e.stopPropagation(),C.applyWidget(t,n)}).bind("refreshWidgets.tablesorter",function(e,n,r){e.stopPropagation(),C.refreshWidgets(t,n,r)}).bind("destroy.tablesorter",function(e,n,r){e.stopPropagation(),C.destroy(t,n,r)})}var C=this;C.version="2.10.8",C.parsers=[],C.widgets=[],C.defaults={theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortInitialOrder:"asc",sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",textExtraction:"simple",textSorter:null,widgets:[],widgetOptions:{zebra:["even","odd"]},initWidgets:!0,initialized:null,tableClass:"tablesorter",cssAsc:"tablesorter-headerAsc",cssChildRow:"tablesorter-childRow",cssDesc:"tablesorter-headerDesc",cssHeader:"tablesorter-header",cssHeaderRow:"tablesorter-headerRow",cssIcon:"tablesorter-icon",cssInfoBlock:"tablesorter-infoOnly",cssProcessing:"tablesorter-processing",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[]},C.log=t,C.benchmark=n,C.construct=function(n){return this.each(function(){if(!this.tHead||0===this.tBodies.length||this.hasInitialized===!0)return this.config&&this.config.debug?t("stopping initialization! No thead, tbody or tablesorter has already been initialized"):"";
var r,i=e(this),a=this,l="",c=e.metadata;a.hasInitialized=!1,a.isProcessing=!0,a.config={},r=e.extend(!0,a.config,C.defaults,n),e.data(a,"tablesorter",r),r.debug&&e.data(a,"startoveralltimer",new Date),r.supportsTextContent="x"===e("<span>x</span>")[0].textContent,r.supportsDataObject=parseFloat(e.fn.jquery)>=1.4,r.string={max:1,min:-1,"max+":1,"max-":-1,zero:0,none:0,"null":0,top:!0,bottom:!1},/tablesorter\-/.test(i.attr("class"))||(l=""!==r.theme?" tablesorter-"+r.theme:""),r.$table=i.addClass(r.tableClass+l),r.$tbodies=i.children("tbody:not(."+r.cssInfoBlock+")"),u(a),p(a),o(a),r.delayInit||s(a),x(a),r.supportsDataObject&&"undefined"!=typeof i.data().sortlist?r.sortList=i.data().sortlist:c&&i.metadata()&&i.metadata().sortlist&&(r.sortList=i.metadata().sortlist),C.applyWidget(a,!0),r.sortList.length>0?i.trigger("sorton",[r.sortList,{},!r.initWidgets]):r.initWidgets&&C.applyWidget(a),r.showProcessing&&i.unbind("sortBegin.tablesorter sortEnd.tablesorter").bind("sortBegin.tablesorter sortEnd.tablesorter",function(e){C.isProcessing(a,"sortBegin"===e.type)}),a.hasInitialized=!0,a.isProcessing=!1,r.debug&&C.benchmark("Overall initialization time",e.data(a,"startoveralltimer")),i.trigger("tablesorter-initialized",a),"function"==typeof r.initialized&&r.initialized(a)})},C.isProcessing=function(t,n,r){t=e(t);var i=t[0].config,o=r||t.find("."+i.cssHeader);n?(i.sortList.length>0&&(o=o.filter(function(){return this.sortDisabled?!1:C.isValueInArray(parseFloat(e(this).attr("data-column")),i.sortList)})),o.addClass(i.cssProcessing)):o.removeClass(i.cssProcessing)},C.processTbody=function(t,n,r){var i;return r?(t.isProcessing=!0,n.before('<span class="tablesorter-savemyplace"/>'),i=e.fn.detach?n.detach():n.remove()):(i=e(t).find("span.tablesorter-savemyplace"),n.insertAfter(i),i.remove(),t.isProcessing=!1,void 0)},C.clearTableBody=function(t){e(t)[0].config.$tbodies.empty()},C.restoreHeaders=function(t){var n=t.config;n.$table.find(n.selectorHeaders).each(function(t){e(this).find(".tablesorter-header-inner").length&&e(this).html(n.headerContent[t])})},C.destroy=function(t,n,r){if(t=e(t)[0],t.hasInitialized){C.refreshWidgets(t,!0,!0);var i=e(t),o=t.config,s=i.find("thead:first"),a=s.find("tr."+o.cssHeaderRow).removeClass(o.cssHeaderRow),l=i.find("tfoot:first > tr").children("th, td");s.find("tr").not(a).remove(),i.removeData("tablesorter").unbind("sortReset update updateAll updateRows updateCell addRows sorton appendCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave keypress sortBegin sortEnd ".split(" ").join(".tablesorter ")),o.$headers.add(l).removeClass(o.cssHeader+" "+o.cssAsc+" "+o.cssDesc).removeAttr("data-column"),a.find(o.selectorSort).unbind("mousedown.tablesorter mouseup.tablesorter keypress.tablesorter"),C.restoreHeaders(t),n!==!1&&i.removeClass(o.tableClass+" tablesorter-"+o.theme),t.hasInitialized=!1,"function"==typeof r&&r(t)}},C.regex=[/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,/^0x[0-9a-f]+$/i],C.sortText=function(e,t,n,r){if(t===n)return 0;var i,o,s,a,l,c,u,d,f=e.config,h=f.string[f.empties[r]||f.emptyTo],p=C.regex;if(""===t&&0!==h)return"boolean"==typeof h?h?-1:1:-h||-1;if(""===n&&0!==h)return"boolean"==typeof h?h?1:-1:h||1;if("function"==typeof f.textSorter)return f.textSorter(t,n,e,r);if(i=t.replace(p[0],"\\0$1\\0").replace(/\\0$/,"").replace(/^\\0/,"").split("\\0"),s=n.replace(p[0],"\\0$1\\0").replace(/\\0$/,"").replace(/^\\0/,"").split("\\0"),o=parseInt(t.match(p[2]),16)||1!==i.length&&t.match(p[1])&&Date.parse(t),a=parseInt(n.match(p[2]),16)||o&&n.match(p[1])&&Date.parse(n)||null){if(a>o)return-1;if(o>a)return 1}for(d=Math.max(i.length,s.length),u=0;d>u;u++){if(l=isNaN(i[u])?i[u]||0:parseFloat(i[u])||0,c=isNaN(s[u])?s[u]||0:parseFloat(s[u])||0,isNaN(l)!==isNaN(c))return isNaN(l)?1:-1;if(typeof l!=typeof c&&(l+="",c+=""),c>l)return-1;if(l>c)return 1}return 0},C.sortTextDesc=function(e,t,n,r){if(t===n)return 0;var i=e.config,o=i.string[i.empties[r]||i.emptyTo];return""===t&&0!==o?"boolean"==typeof o?o?-1:1:o||1:""===n&&0!==o?"boolean"==typeof o?o?1:-1:-o||-1:"function"==typeof i.textSorter?i.textSorter(n,t,e,r):C.sortText(e,n,t)},C.getTextValue=function(e,t,n){if(t){var r,i=e?e.length:0,o=t+n;for(r=0;i>r;r++)o+=e.charCodeAt(r);return n*o}return 0},C.sortNumeric=function(e,t,n,r,i,o){if(t===n)return 0;var s=e.config,a=s.string[s.empties[r]||s.emptyTo];return""===t&&0!==a?"boolean"==typeof a?a?-1:1:-a||-1:""===n&&0!==a?"boolean"==typeof a?a?1:-1:a||1:(isNaN(t)&&(t=C.getTextValue(t,i,o)),isNaN(n)&&(n=C.getTextValue(n,i,o)),t-n)},C.sortNumericDesc=function(e,t,n,r,i,o){if(t===n)return 0;var s=e.config,a=s.string[s.empties[r]||s.emptyTo];return""===t&&0!==a?"boolean"==typeof a?a?-1:1:a||1:""===n&&0!==a?"boolean"==typeof a?a?1:-1:-a||-1:(isNaN(t)&&(t=C.getTextValue(t,i,o)),isNaN(n)&&(n=C.getTextValue(n,i,o)),n-t)},C.characterEquivalents={a:"\xe1\xe0\xe2\xe3\xe4\u0105\xe5",A:"\xc1\xc0\xc2\xc3\xc4\u0104\xc5",c:"\xe7\u0107\u010d",C:"\xc7\u0106\u010c",e:"\xe9\xe8\xea\xeb\u011b\u0119",E:"\xc9\xc8\xca\xcb\u011a\u0118",i:"\xed\xec\u0130\xee\xef\u0131",I:"\xcd\xcc\u0130\xce\xcf",o:"\xf3\xf2\xf4\xf5\xf6",O:"\xd3\xd2\xd4\xd5\xd6",ss:"\xdf",SS:"\u1e9e",u:"\xfa\xf9\xfb\xfc\u016f",U:"\xda\xd9\xdb\xdc\u016e"},C.replaceAccents=function(e){var t,n="[",r=C.characterEquivalents;if(!C.characterRegex){C.characterRegexArray={};for(t in r)"string"==typeof t&&(n+=r[t],C.characterRegexArray[t]=new RegExp("["+r[t]+"]","g"));C.characterRegex=new RegExp(n+"]")}if(C.characterRegex.test(e))for(t in r)"string"==typeof t&&(e=e.replace(C.characterRegexArray[t],t));return e},C.isValueInArray=function(e,t){var n,r=t.length;for(n=0;r>n;n++)if(t[n][0]===e)return!0;return!1},C.addParser=function(e){var t,n=C.parsers.length,r=!0;for(t=0;n>t;t++)C.parsers[t].id.toLowerCase()===e.id.toLowerCase()&&(r=!1);r&&C.parsers.push(e)},C.getParserById=function(e){var t,n=C.parsers.length;for(t=0;n>t;t++)if(C.parsers[t].id.toLowerCase()===e.toString().toLowerCase())return C.parsers[t];return!1},C.addWidget=function(e){C.widgets.push(e)},C.getWidgetById=function(e){var t,n,r=C.widgets.length;for(t=0;r>t;t++)if(n=C.widgets[t],n&&n.hasOwnProperty("id")&&n.id.toLowerCase()===e.toLowerCase())return n},C.applyWidget=function(t,r){t=e(t)[0];var i,o,s,a=t.config,l=a.widgetOptions,c=[];a.debug&&(i=new Date),a.widgets.length&&(a.widgets=e.grep(a.widgets,function(t,n){return e.inArray(t,a.widgets)===n}),e.each(a.widgets||[],function(e,t){s=C.getWidgetById(t),s&&s.id&&(s.priority||(s.priority=10),c[e]=s)}),c.sort(function(e,t){return e.priority<t.priority?-1:e.priority===t.priority?0:1}),e.each(c,function(n,i){i&&(r?(i.hasOwnProperty("options")&&(l=t.config.widgetOptions=e.extend(!0,{},i.options,l)),i.hasOwnProperty("init")&&i.init(t,i,a,l)):!r&&i.hasOwnProperty("format")&&i.format(t,a,l,!1))})),a.debug&&(o=a.widgets.length,n("Completed "+(r===!0?"initializing ":"applying ")+o+" widget"+(1!==o?"s":""),i))},C.refreshWidgets=function(n,r,i){n=e(n)[0];var o,s=n.config,a=s.widgets,l=C.widgets,c=l.length;for(o=0;c>o;o++)l[o]&&l[o].id&&(r||e.inArray(l[o].id,a)<0)&&(s.debug&&t("Refeshing widgets: Removing "+l[o].id),l[o].hasOwnProperty("remove")&&l[o].remove(n,s,s.widgetOptions));i!==!0&&C.applyWidget(n,r)},C.getData=function(t,n,r){var i,o,s="",a=e(t);return a.length?(i=e.metadata?a.metadata():!1,o=" "+(a.attr("class")||""),"undefined"!=typeof a.data(r)||"undefined"!=typeof a.data(r.toLowerCase())?s+=a.data(r)||a.data(r.toLowerCase()):i&&"undefined"!=typeof i[r]?s+=i[r]:n&&"undefined"!=typeof n[r]?s+=n[r]:" "!==o&&o.match(" "+r+"-")&&(s=o.match(new RegExp("\\s"+r+"-([\\w-]+)"))[1]||""),e.trim(s)):""},C.formatFloat=function(t,n){if("string"!=typeof t||""===t)return t;var r,i=n&&n.config?n.config.usNumberFormat!==!1:"undefined"!=typeof n?n:!0;return t=i?t.replace(/,/g,""):t.replace(/[\s|\.]/g,"").replace(/,/g,"."),/^\s*\([.\d]+\)/.test(t)&&(t=t.replace(/^\s*\(/,"-").replace(/\)/,"")),r=parseFloat(t),isNaN(r)?e.trim(t):r},C.isDigit=function(e){return isNaN(e)?/^[\-+(]?\d+[)]?$/.test(e.toString().replace(/[,.'"\s]/g,"")):!0}}});var t=e.tablesorter;e.fn.extend({tablesorter:t.construct}),t.addParser({id:"text",is:function(){return!0},format:function(n,r){var i=r.config;return n&&(n=e.trim(i.ignoreCase?n.toLocaleLowerCase():n),n=i.sortLocaleCompare?t.replaceAccents(n):n),n},type:"text"}),t.addParser({id:"digit",is:function(e){return t.isDigit(e)},format:function(n,r){var i=t.formatFloat((n||"").replace(/[^\w,. \-()]/g,""),r);return n&&"number"==typeof i?i:n?e.trim(n&&r.config.ignoreCase?n.toLocaleLowerCase():n):n},type:"numeric"}),t.addParser({id:"currency",is:function(e){return/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/.test((e||"").replace(/[,. ]/g,""))},format:function(n,r){var i=t.formatFloat((n||"").replace(/[^\w,. \-()]/g,""),r);return n&&"number"==typeof i?i:n?e.trim(n&&r.config.ignoreCase?n.toLocaleLowerCase():n):n},type:"numeric"}),t.addParser({id:"ipAddress",is:function(e){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(e)},format:function(e,n){var r,i=e?e.split("."):"",o="",s=i.length;for(r=0;s>r;r++)o+=("00"+i[r]).slice(-3);return e?t.formatFloat(o,n):e},type:"numeric"}),t.addParser({id:"url",is:function(e){return/^(https?|ftp|file):\/\//.test(e)},format:function(t){return t?e.trim(t.replace(/(https?|ftp|file):\/\//,"")):t},type:"text"}),t.addParser({id:"isoDate",is:function(e){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/.test(e)},format:function(e,n){return e?t.formatFloat(""!==e?new Date(e.replace(/-/g,"/")).getTime()||"":"",n):e},type:"numeric"}),t.addParser({id:"percent",is:function(e){return/(\d\s*?%|%\s*?\d)/.test(e)&&e.length<15},format:function(e,n){return e?t.formatFloat(e.replace(/%/g,""),n):e},type:"numeric"}),t.addParser({id:"usLongDate",is:function(e){return/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i.test(e)||/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i.test(e)},format:function(e,n){return e?t.formatFloat(new Date(e.replace(/(\S)([AP]M)$/i,"$1 $2")).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"shortDate",is:function(e){return/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/.test((e||"").replace(/\s+/g," ").replace(/[\-.,]/g,"/"))},format:function(e,n,r,i){if(e){var o=n.config,s=o.headerList[i],a=s.dateFormat||t.getData(s,o.headers[i],"dateFormat")||o.dateFormat;e=e.replace(/\s+/g," ").replace(/[\-.,]/g,"/"),"mmddyyyy"===a?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2"):"ddmmyyyy"===a?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$2/$1"):"yyyymmdd"===a&&(e=e.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,"$1/$2/$3"))}return e?t.formatFloat(new Date(e).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"time",is:function(e){return/^(([0-2]?\d:[0-5]\d)|([0-1]?\d:[0-5]\d\s?([AP]M)))$/i.test(e)},format:function(e,n){return e?t.formatFloat(new Date("2000/01/01 "+e.replace(/(\S)([AP]M)$/i,"$1 $2")).getTime()||"",n):e},type:"numeric"}),t.addParser({id:"metadata",is:function(){return!1},format:function(t,n,r){var i=n.config,o=i.parserMetadataName?i.parserMetadataName:"sortValue";return e(r).metadata()[o]},type:"numeric"}),t.addWidget({id:"zebra",priority:90,format:function(n,r,i){var o,s,a,l,c,u,d,f,h=new RegExp(r.cssChildRow,"i"),p=r.$tbodies;for(r.debug&&(u=new Date),d=0;d<p.length;d++)o=p.eq(d),f=o.children("tr").length,f>1&&(l=0,s=o.children("tr:visible"),s.each(function(){a=e(this),h.test(this.className)||l++,c=l%2===0,a.removeClass(i.zebra[c?1:0]).addClass(i.zebra[c?0:1])}));r.debug&&t.benchmark("Applying Zebra widget",u)},remove:function(t,n,r){var i,o,s=n.$tbodies,a=(r.zebra||["even","odd"]).join(" ");for(i=0;i<s.length;i++)o=e.tablesorter.processTbody(t,s.eq(i),!0),o.children().removeClass(a),e.tablesorter.processTbody(t,o,!1)}})}(jQuery),function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,o=Function.prototype,s=r.push,a=r.slice,l=r.concat,c=i.toString,u=i.hasOwnProperty,d=r.forEach,f=r.map,h=r.reduce,p=r.reduceRight,m=r.filter,g=r.every,v=r.some,b=r.indexOf,y=r.lastIndexOf,w=Array.isArray,x=Object.keys,C=o.bind,S=function(e){return e instanceof S?e:this instanceof S?(this._wrapped=e,void 0):new S(e)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=S),exports._=S):e._=S,S.VERSION="1.4.4";var k=S.each=S.forEach=function(e,t,r){if(null!=e)if(d&&e.forEach===d)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,o=e.length;o>i;i++)if(t.call(r,e[i],i,e)===n)return}else for(var s in e)if(S.has(e,s)&&t.call(r,e[s],s,e)===n)return};S.map=S.collect=function(e,t,n){var r=[];return null==e?r:f&&e.map===f?e.map(t,n):(k(e,function(e,i,o){r[r.length]=t.call(n,e,i,o)}),r)};var T="Reduce of empty array with no initial value";S.reduce=S.foldl=S.inject=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),h&&e.reduce===h)return r&&(t=S.bind(t,r)),i?e.reduce(t,n):e.reduce(t);if(k(e,function(e,o,s){i?n=t.call(r,n,e,o,s):(n=e,i=!0)}),!i)throw new TypeError(T);return n},S.reduceRight=S.foldr=function(e,t,n,r){var i=arguments.length>2;if(null==e&&(e=[]),p&&e.reduceRight===p)return r&&(t=S.bind(t,r)),i?e.reduceRight(t,n):e.reduceRight(t);var o=e.length;if(o!==+o){var s=S.keys(e);o=s.length}if(k(e,function(a,l,c){l=s?s[--o]:--o,i?n=t.call(r,n,e[l],l,c):(n=e[l],i=!0)}),!i)throw new TypeError(T);return n},S.find=S.detect=function(e,t,n){var r;return L(e,function(e,i,o){return t.call(n,e,i,o)?(r=e,!0):void 0}),r},S.filter=S.select=function(e,t,n){var r=[];return null==e?r:m&&e.filter===m?e.filter(t,n):(k(e,function(e,i,o){t.call(n,e,i,o)&&(r[r.length]=e)}),r)},S.reject=function(e,t,n){return S.filter(e,function(e,r,i){return!t.call(n,e,r,i)},n)},S.every=S.all=function(e,t,r){t||(t=S.identity);var i=!0;return null==e?i:g&&e.every===g?e.every(t,r):(k(e,function(e,o,s){return(i=i&&t.call(r,e,o,s))?void 0:n}),!!i)};var L=S.some=S.any=function(e,t,r){t||(t=S.identity);var i=!1;return null==e?i:v&&e.some===v?e.some(t,r):(k(e,function(e,o,s){return i||(i=t.call(r,e,o,s))?n:void 0}),!!i)};S.contains=S.include=function(e,t){return null==e?!1:b&&e.indexOf===b?-1!=e.indexOf(t):L(e,function(e){return e===t})},S.invoke=function(e,t){var n=a.call(arguments,2),r=S.isFunction(t);return S.map(e,function(e){return(r?t:e[t]).apply(e,n)})},S.pluck=function(e,t){return S.map(e,function(e){return e[t]})},S.where=function(e,t,n){return S.isEmpty(t)?n?null:[]:S[n?"find":"filter"](e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},S.findWhere=function(e,t){return S.where(e,t,!0)},S.max=function(e,t,n){if(!t&&S.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);if(!t&&S.isEmpty(e))return-1/0;var r={computed:-1/0,value:-1/0};return k(e,function(e,i,o){var s=t?t.call(n,e,i,o):e;s>=r.computed&&(r={value:e,computed:s})}),r.value},S.min=function(e,t,n){if(!t&&S.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);if(!t&&S.isEmpty(e))return 1/0;var r={computed:1/0,value:1/0};return k(e,function(e,i,o){var s=t?t.call(n,e,i,o):e;s<r.computed&&(r={value:e,computed:s})}),r.value},S.shuffle=function(e){var t,n=0,r=[];return k(e,function(e){t=S.random(n++),r[n-1]=r[t],r[t]=e}),r};var E=function(e){return S.isFunction(e)?e:function(t){return t[e]}};S.sortBy=function(e,t,n){var r=E(t);return S.pluck(S.map(e,function(e,t,i){return{value:e,index:t,criteria:r.call(n,e,t,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(r>n||void 0===r)return-1}return e.index<t.index?-1:1}),"value")};var N=function(e,t,n,r){var i={},o=E(t||S.identity);return k(e,function(t,s){var a=o.call(n,t,s,e);r(i,a,t)}),i};S.groupBy=function(e,t,n){return N(e,t,n,function(e,t,n){(S.has(e,t)?e[t]:e[t]=[]).push(n)})},S.countBy=function(e,t,n){return N(e,t,n,function(e,t){S.has(e,t)||(e[t]=0),e[t]++})},S.sortedIndex=function(e,t,n,r){n=null==n?S.identity:E(n);for(var i=n.call(r,t),o=0,s=e.length;s>o;){var a=o+s>>>1;n.call(r,e[a])<i?o=a+1:s=a}return o},S.toArray=function(e){return e?S.isArray(e)?a.call(e):e.length===+e.length?S.map(e,S.identity):S.values(e):[]},S.size=function(e){return null==e?0:e.length===+e.length?e.length:S.keys(e).length},S.first=S.head=S.take=function(e,t,n){return null==e?void 0:null==t||n?e[0]:a.call(e,0,t)},S.initial=function(e,t,n){return a.call(e,0,e.length-(null==t||n?1:t))},S.last=function(e,t,n){return null==e?void 0:null==t||n?e[e.length-1]:a.call(e,Math.max(e.length-t,0))},S.rest=S.tail=S.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},S.compact=function(e){return S.filter(e,S.identity)};var A=function(e,t,n){return k(e,function(e){S.isArray(e)?t?s.apply(n,e):A(e,t,n):n.push(e)}),n};S.flatten=function(e,t){return A(e,t,[])},S.without=function(e){return S.difference(e,a.call(arguments,1))},S.uniq=S.unique=function(e,t,n,r){S.isFunction(t)&&(r=n,n=t,t=!1);var i=n?S.map(e,n,r):e,o=[],s=[];return k(i,function(n,r){(t?r&&s[s.length-1]===n:S.contains(s,n))||(s.push(n),o.push(e[r]))}),o},S.union=function(){return S.uniq(l.apply(r,arguments))},S.intersection=function(e){var t=a.call(arguments,1);return S.filter(S.uniq(e),function(e){return S.every(t,function(t){return S.indexOf(t,e)>=0})})},S.difference=function(e){var t=l.apply(r,a.call(arguments,1));return S.filter(e,function(e){return!S.contains(t,e)})},S.zip=function(){for(var e=a.call(arguments),t=S.max(S.pluck(e,"length")),n=new Array(t),r=0;t>r;r++)n[r]=S.pluck(e,""+r);return n},S.object=function(e,t){if(null==e)return{};for(var n={},r=0,i=e.length;i>r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},S.indexOf=function(e,t,n){if(null==e)return-1;var r=0,i=e.length;if(n){if("number"!=typeof n)return r=S.sortedIndex(e,t),e[r]===t?r:-1;r=0>n?Math.max(0,i+n):n}if(b&&e.indexOf===b)return e.indexOf(t,n);for(;i>r;r++)if(e[r]===t)return r;return-1},S.lastIndexOf=function(e,t,n){if(null==e)return-1;var r=null!=n;if(y&&e.lastIndexOf===y)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);for(var i=r?n:e.length;i--;)if(e[i]===t)return i;return-1},S.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;for(var r=Math.max(Math.ceil((t-e)/n),0),i=0,o=new Array(r);r>i;)o[i++]=e,e+=n;return o},S.bind=function(e,t){if(e.bind===C&&C)return C.apply(e,a.call(arguments,1));var n=a.call(arguments,2);return function(){return e.apply(t,n.concat(a.call(arguments)))}},S.partial=function(e){var t=a.call(arguments,1);return function(){return e.apply(this,t.concat(a.call(arguments)))}},S.bindAll=function(e){var t=a.call(arguments,1);return 0===t.length&&(t=S.functions(e)),k(t,function(t){e[t]=S.bind(e[t],e)}),e},S.memoize=function(e,t){var n={};return t||(t=S.identity),function(){var r=t.apply(this,arguments);return S.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},S.delay=function(e,t){var n=a.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},S.defer=function(e){return S.delay.apply(S,[e,1].concat(a.call(arguments,1)))},S.throttle=function(e,t){var n,r,i,o,s=0,a=function(){s=new Date,i=null,o=e.apply(n,r)};return function(){var l=new Date,c=t-(l-s);return n=this,r=arguments,0>=c?(clearTimeout(i),i=null,s=l,o=e.apply(n,r)):i||(i=setTimeout(a,c)),o}},S.debounce=function(e,t,n){var r,i;return function(){var o=this,s=arguments,a=function(){r=null,n||(i=e.apply(o,s))},l=n&&!r;return clearTimeout(r),r=setTimeout(a,t),l&&(i=e.apply(o,s)),i}},S.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}},S.wrap=function(e,t){return function(){var n=[e];return s.apply(n,arguments),t.apply(this,n)}},S.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},S.after=function(e,t){return 0>=e?t():function(){return--e<1?t.apply(this,arguments):void 0}},S.keys=x||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)S.has(e,n)&&(t[t.length]=n);return t},S.values=function(e){var t=[];for(var n in e)S.has(e,n)&&t.push(e[n]);return t},S.pairs=function(e){var t=[];for(var n in e)S.has(e,n)&&t.push([n,e[n]]);return t},S.invert=function(e){var t={};for(var n in e)S.has(e,n)&&(t[e[n]]=n);return t},S.functions=S.methods=function(e){var t=[];for(var n in e)S.isFunction(e[n])&&t.push(n);return t.sort()},S.extend=function(e){return k(a.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},S.pick=function(e){var t={},n=l.apply(r,a.call(arguments,1));return k(n,function(n){n in e&&(t[n]=e[n])}),t},S.omit=function(e){var t={},n=l.apply(r,a.call(arguments,1));for(var i in e)S.contains(n,i)||(t[i]=e[i]);return t},S.defaults=function(e){return k(a.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&&(e[n]=t[n])}),e},S.clone=function(e){return S.isObject(e)?S.isArray(e)?e.slice():S.extend({},e):e},S.tap=function(e,t){return t(e),e};var D=function(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof S&&(e=e._wrapped),t instanceof S&&(t=t._wrapped);var i=c.call(e);if(i!=c.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if("object"!=typeof e||"object"!=typeof t)return!1;for(var o=n.length;o--;)if(n[o]==e)return r[o]==t;n.push(e),r.push(t);var s=0,a=!0;if("[object Array]"==i){if(s=e.length,a=s==t.length)for(;s--&&(a=D(e[s],t[s],n,r)););}else{var l=e.constructor,u=t.constructor;if(l!==u&&!(S.isFunction(l)&&l instanceof l&&S.isFunction(u)&&u instanceof u))return!1;for(var d in e)if(S.has(e,d)&&(s++,!(a=S.has(t,d)&&D(e[d],t[d],n,r))))break;if(a){for(d in t)if(S.has(t,d)&&!s--)break;a=!s}}return n.pop(),r.pop(),a};S.isEqual=function(e,t){return D(e,t,[],[])},S.isEmpty=function(e){if(null==e)return!0;if(S.isArray(e)||S.isString(e))return 0===e.length;for(var t in e)if(S.has(e,t))return!1;return!0},S.isElement=function(e){return!(!e||1!==e.nodeType)},S.isArray=w||function(e){return"[object Array]"==c.call(e)},S.isObject=function(e){return e===Object(e)},k(["Arguments","Function","String","Number","Date","RegExp"],function(e){S["is"+e]=function(t){return c.call(t)=="[object "+e+"]"}}),S.isArguments(arguments)||(S.isArguments=function(e){return!(!e||!S.has(e,"callee"))}),"function"!=typeof/./&&(S.isFunction=function(e){return"function"==typeof e}),S.isFinite=function(e){return isFinite(e)&&!isNaN(parseFloat(e))},S.isNaN=function(e){return S.isNumber(e)&&e!=+e},S.isBoolean=function(e){return e===!0||e===!1||"[object Boolean]"==c.call(e)},S.isNull=function(e){return null===e},S.isUndefined=function(e){return void 0===e},S.has=function(e,t){return u.call(e,t)},S.noConflict=function(){return e._=t,this},S.identity=function(e){return e},S.times=function(e,t,n){for(var r=Array(e),i=0;e>i;i++)r[i]=t.call(n,i);return r},S.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))};var M={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};M.unescape=S.invert(M.escape);var I={escape:new RegExp("["+S.keys(M.escape).join("")+"]","g"),unescape:new RegExp("("+S.keys(M.unescape).join("|")+")","g")};S.each(["escape","unescape"],function(e){S[e]=function(t){return null==t?"":(""+t).replace(I[e],function(t){return M[e][t]})}}),S.result=function(e,t){if(null==e)return null;var n=e[t];return S.isFunction(n)?n.call(e):n},S.mixin=function(e){k(S.functions(e),function(t){var n=S[t]=e[t];S.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),G.call(this,n.apply(S,e))}})};var $=0;S.uniqueId=function(e){var t=++$+"";return e?e+t:t},S.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var O=/(.)^/,P={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},F=/\\|'|\r|\n|\t|\u2028|\u2029/g;S.template=function(e,t,n){var r;n=S.defaults({},n,S.templateSettings);var i=new RegExp([(n.escape||O).source,(n.interpolate||O).source,(n.evaluate||O).source].join("|")+"|$","g"),o=0,s="__p+='";e.replace(i,function(t,n,r,i,a){return s+=e.slice(o,a).replace(F,function(e){return"\\"+P[e]}),n&&(s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'"),r&&(s+="'+\n((__t=("+r+"))==null?'':__t)+\n'"),i&&(s+="';\n"+i+"\n__p+='"),o=a+t.length,t}),s+="';\n",n.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{r=new Function(n.variable||"obj","_",s)}catch(a){throw a.source=s,a}if(t)return r(t,S);var l=function(e){return r.call(this,e,S)};return l.source="function("+(n.variable||"obj")+"){\n"+s+"}",l},S.chain=function(e){return S(e).chain()};var G=function(e){return this._chain?S(e).chain():e};S.mixin(S),k(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];S.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!=e&&"splice"!=e||0!==n.length||delete n[0],G.call(this,n)}}),k(["concat","join","slice"],function(e){var t=r[e];S.prototype[e]=function(){return G.call(this,t.apply(this._wrapped,arguments))}}),S.extend(S.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),function(){var e,t=this,n=t.Backbone,r=[],i=r.push,o=r.slice,s=r.splice;e="undefined"!=typeof exports?exports:t.Backbone={},e.VERSION="1.0.0";var a=t._;a||"undefined"==typeof require||(a=require("underscore")),e.$=t.jQuery||t.Zepto||t.ender||t.$,e.noConflict=function(){return t.Backbone=n,this},e.emulateHTTP=!1,e.emulateJSON=!1;var l=e.Events={on:function(e,t,n){if(!u(this,"on",e,[t,n])||!t)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:t,context:n,ctx:n||this}),this},once:function(e,t,n){if(!u(this,"once",e,[t,n])||!t)return this;var r=this,i=a.once(function(){r.off(e,i),t.apply(this,arguments)});return i._callback=t,this.on(e,i,n)},off:function(e,t,n){var r,i,o,s,l,c,d,f;if(!this._events||!u(this,"off",e,[t,n]))return this;if(!e&&!t&&!n)return this._events={},this;for(s=e?[e]:a.keys(this._events),l=0,c=s.length;c>l;l++)if(e=s[l],o=this._events[e]){if(this._events[e]=r=[],t||n)for(d=0,f=o.length;f>d;d++)i=o[d],(t&&t!==i.callback&&t!==i.callback._callback||n&&n!==i.context)&&r.push(i);r.length||delete this._events[e]}return this},trigger:function(e){if(!this._events)return this;var t=o.call(arguments,1);if(!u(this,"trigger",e,t))return this;var n=this._events[e],r=this._events.all;return n&&d(n,t),r&&d(r,arguments),this},stopListening:function(e,t,n){var r=this._listeners;if(!r)return this;var i=!t&&!n;"object"==typeof t&&(n=this),e&&((r={})[e._listenerId]=e);for(var o in r)r[o].off(t,n,this),i&&delete this._listeners[o];return this}},c=/\s+/,u=function(e,t,n,r){if(!n)return!0;if("object"==typeof n){for(var i in n)e[t].apply(e,[i,n[i]].concat(r));return!1}if(c.test(n)){for(var o=n.split(c),s=0,a=o.length;a>s;s++)e[t].apply(e,[o[s]].concat(r));return!1}return!0},d=function(e,t){var n,r=-1,i=e.length,o=t[0],s=t[1],a=t[2];switch(t.length){case 0:for(;++r<i;)(n=e[r]).callback.call(n.ctx);return;case 1:for(;++r<i;)(n=e[r]).callback.call(n.ctx,o);return;case 2:for(;++r<i;)(n=e[r]).callback.call(n.ctx,o,s);return;case 3:for(;++r<i;)(n=e[r]).callback.call(n.ctx,o,s,a);return;default:for(;++r<i;)(n=e[r]).callback.apply(n.ctx,t)}},f={listenTo:"on",listenToOnce:"once"};a.each(f,function(e,t){l[t]=function(t,n,r){var i=this._listeners||(this._listeners={}),o=t._listenerId||(t._listenerId=a.uniqueId("l"));return i[o]=t,"object"==typeof n&&(r=this),t[e](n,r,this),this}}),l.bind=l.on,l.unbind=l.off,a.extend(e,l);var h=e.Model=function(e,t){var n,r=e||{};t||(t={}),this.cid=a.uniqueId("c"),this.attributes={},a.extend(this,a.pick(t,p)),t.parse&&(r=this.parse(r,t)||{}),(n=a.result(this,"defaults"))&&(r=a.defaults({},r,n)),this.set(r,t),this.changed={},this.initialize.apply(this,arguments)},p=["url","urlRoot","collection"];a.extend(h.prototype,l,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(){return a.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(e){return this.attributes[e]},escape:function(e){return a.escape(this.get(e))},has:function(e){return null!=this.get(e)},set:function(e,t,n){var r,i,o,s,l,c,u,d;if(null==e)return this;if("object"==typeof e?(i=e,n=t):(i={})[e]=t,n||(n={}),!this._validate(i,n))return!1;o=n.unset,l=n.silent,s=[],c=this._changing,this._changing=!0,c||(this._previousAttributes=a.clone(this.attributes),this.changed={}),d=this.attributes,u=this._previousAttributes,this.idAttribute in i&&(this.id=i[this.idAttribute]);for(r in i)t=i[r],a.isEqual(d[r],t)||s.push(r),a.isEqual(u[r],t)?delete this.changed[r]:this.changed[r]=t,o?delete d[r]:d[r]=t;if(!l){s.length&&(this._pending=!0);for(var f=0,h=s.length;h>f;f++)this.trigger("change:"+s[f],this,d[s[f]],n)}if(c)return this;if(!l)for(;this._pending;)this._pending=!1,this.trigger("change",this,n);return this._pending=!1,this._changing=!1,this},unset:function(e,t){return this.set(e,void 0,a.extend({},t,{unset:!0}))},clear:function(e){var t={};for(var n in this.attributes)t[n]=void 0;return this.set(t,a.extend({},e,{unset:!0}))},hasChanged:function(e){return null==e?!a.isEmpty(this.changed):a.has(this.changed,e)},changedAttributes:function(e){if(!e)return this.hasChanged()?a.clone(this.changed):!1;var t,n=!1,r=this._changing?this._previousAttributes:this.attributes;for(var i in e)a.isEqual(r[i],t=e[i])||((n||(n={}))[i]=t);return n},previous:function(e){return null!=e&&this._previousAttributes?this._previousAttributes[e]:null},previousAttributes:function(){return a.clone(this._previousAttributes)},fetch:function(e){e=e?a.clone(e):{},void 0===e.parse&&(e.parse=!0);var t=this,n=e.success;return e.success=function(r){return t.set(t.parse(r,e),e)?(n&&n(t,r,e),t.trigger("sync",t,r,e),void 0):!1},G(this,e),this.sync("read",this,e)},save:function(e,t,n){var r,i,o,s=this.attributes;if(null==e||"object"==typeof e?(r=e,n=t):(r={})[e]=t,!(!r||n&&n.wait||this.set(r,n)))return!1;if(n=a.extend({validate:!0},n),!this._validate(r,n))return!1;r&&n.wait&&(this.attributes=a.extend({},s,r)),void 0===n.parse&&(n.parse=!0);var l=this,c=n.success;return n.success=function(e){l.attributes=s;var t=l.parse(e,n);return n.wait&&(t=a.extend(r||{},t)),a.isObject(t)&&!l.set(t,n)?!1:(c&&c(l,e,n),l.trigger("sync",l,e,n),void 0)},G(this,n),i=this.isNew()?"create":n.patch?"patch":"update","patch"===i&&(n.attrs=r),o=this.sync(i,this,n),r&&n.wait&&(this.attributes=s),o},destroy:function(e){e=e?a.clone(e):{};var t=this,n=e.success,r=function(){t.trigger("destroy",t,t.collection,e)};if(e.success=function(i){(e.wait||t.isNew())&&r(),n&&n(t,i,e),t.isNew()||t.trigger("sync",t,i,e)},this.isNew())return e.success(),!1;G(this,e);var i=this.sync("delete",this,e);return e.wait||r(),i},url:function(){var e=a.result(this,"urlRoot")||a.result(this.collection,"url")||F();return this.isNew()?e:e+("/"===e.charAt(e.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(e){return e},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},isValid:function(e){return this._validate({},a.extend(e||{},{validate:!0}))},_validate:function(e,t){if(!t.validate||!this.validate)return!0;e=a.extend({},this.attributes,e);var n=this.validationError=this.validate(e,t)||null;return n?(this.trigger("invalid",this,n,a.extend(t||{},{validationError:n})),!1):!0}});var m=["keys","values","pairs","invert","pick","omit"];a.each(m,function(e){h.prototype[e]=function(){var t=o.call(arguments);return t.unshift(this.attributes),a[e].apply(a,t)}});var g=e.Collection=function(e,t){t||(t={}),t.url&&(this.url=t.url),t.model&&(this.model=t.model),void 0!==t.comparator&&(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,a.extend({silent:!0},t))},v={add:!0,remove:!0,merge:!0},b={add:!0,merge:!1,remove:!1};a.extend(g.prototype,l,{model:h,initialize:function(){},toJSON:function(e){return this.map(function(t){return t.toJSON(e)})},sync:function(){return e.sync.apply(this,arguments)},add:function(e,t){return this.set(e,a.defaults(t||{},b))},remove:function(e,t){e=a.isArray(e)?e.slice():[e],t||(t={});var n,r,i,o;for(n=0,r=e.length;r>n;n++)o=this.get(e[n]),o&&(delete this._byId[o.id],delete this._byId[o.cid],i=this.indexOf(o),this.models.splice(i,1),this.length--,t.silent||(t.index=i,o.trigger("remove",o,this,t)),this._removeReference(o));return this},set:function(e,t){t=a.defaults(t||{},v),t.parse&&(e=this.parse(e,t)),a.isArray(e)||(e=e?[e]:[]);
var n,r,o,l,c,u=t.at,d=this.comparator&&null==u&&t.sort!==!1,f=a.isString(this.comparator)?this.comparator:null,h=[],p=[],m={};for(n=0,r=e.length;r>n;n++)(o=this._prepareModel(e[n],t))&&((l=this.get(o))?(t.remove&&(m[l.cid]=!0),t.merge&&(l.set(o.attributes,t),d&&!c&&l.hasChanged(f)&&(c=!0))):t.add&&(h.push(o),o.on("all",this._onModelEvent,this),this._byId[o.cid]=o,null!=o.id&&(this._byId[o.id]=o)));if(t.remove){for(n=0,r=this.length;r>n;++n)m[(o=this.models[n]).cid]||p.push(o);p.length&&this.remove(p,t)}if(h.length&&(d&&(c=!0),this.length+=h.length,null!=u?s.apply(this.models,[u,0].concat(h)):i.apply(this.models,h)),c&&this.sort({silent:!0}),t.silent)return this;for(n=0,r=h.length;r>n;n++)(o=h[n]).trigger("add",o,this,t);return c&&this.trigger("sort",this,t),this},reset:function(e,t){t||(t={});for(var n=0,r=this.models.length;r>n;n++)this._removeReference(this.models[n]);return t.previousModels=this.models,this._reset(),this.add(e,a.extend({silent:!0},t)),t.silent||this.trigger("reset",this,t),this},push:function(e,t){return e=this._prepareModel(e,t),this.add(e,a.extend({at:this.length},t)),e},pop:function(e){var t=this.at(this.length-1);return this.remove(t,e),t},unshift:function(e,t){return e=this._prepareModel(e,t),this.add(e,a.extend({at:0},t)),e},shift:function(e){var t=this.at(0);return this.remove(t,e),t},slice:function(e,t){return this.models.slice(e,t)},get:function(e){return null==e?void 0:this._byId[null!=e.id?e.id:e.cid||e]},at:function(e){return this.models[e]},where:function(e,t){return a.isEmpty(e)?t?void 0:[]:this[t?"find":"filter"](function(t){for(var n in e)if(e[n]!==t.get(n))return!1;return!0})},findWhere:function(e){return this.where(e,!0)},sort:function(e){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");return e||(e={}),a.isString(this.comparator)||1===this.comparator.length?this.models=this.sortBy(this.comparator,this):this.models.sort(a.bind(this.comparator,this)),e.silent||this.trigger("sort",this,e),this},sortedIndex:function(e,t,n){t||(t=this.comparator);var r=a.isFunction(t)?t:function(e){return e.get(t)};return a.sortedIndex(this.models,e,r,n)},pluck:function(e){return a.invoke(this.models,"get",e)},fetch:function(e){e=e?a.clone(e):{},void 0===e.parse&&(e.parse=!0);var t=e.success,n=this;return e.success=function(r){var i=e.reset?"reset":"set";n[i](r,e),t&&t(n,r,e),n.trigger("sync",n,r,e)},G(this,e),this.sync("read",this,e)},create:function(e,t){if(t=t?a.clone(t):{},!(e=this._prepareModel(e,t)))return!1;t.wait||this.add(e,t);var n=this,r=t.success;return t.success=function(i){t.wait&&n.add(e,t),r&&r(e,i,t)},e.save(null,t),e},parse:function(e){return e},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0,this.models=[],this._byId={}},_prepareModel:function(e,t){if(e instanceof h)return e.collection||(e.collection=this),e;t||(t={}),t.collection=this;var n=new this.model(e,t);return n._validate(e,t)?n:(this.trigger("invalid",this,e,t),!1)},_removeReference:function(e){this===e.collection&&delete e.collection,e.off("all",this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){("add"!==e&&"remove"!==e||n===this)&&("destroy"===e&&this.remove(t,r),t&&e==="change:"+t.idAttribute&&(delete this._byId[t.previous(t.idAttribute)],null!=t.id&&(this._byId[t.id]=t)),this.trigger.apply(this,arguments))}});var y=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","indexOf","shuffle","lastIndexOf","isEmpty","chain"];a.each(y,function(e){g.prototype[e]=function(){var t=o.call(arguments);return t.unshift(this.models),a[e].apply(a,t)}});var w=["groupBy","countBy","sortBy"];a.each(w,function(e){g.prototype[e]=function(t,n){var r=a.isFunction(t)?t:function(e){return e.get(t)};return a[e](this.models,r,n)}});var x=e.View=function(e){this.cid=a.uniqueId("view"),this._configure(e||{}),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},C=/^(\S+)\s*(.*)$/,S=["model","collection","el","id","attributes","className","tagName","events"];a.extend(x.prototype,l,{tagName:"div",$:function(e){return this.$el.find(e)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this.stopListening(),this},setElement:function(t,n){return this.$el&&this.undelegateEvents(),this.$el=t instanceof e.$?t:e.$(t),this.el=this.$el[0],n!==!1&&this.delegateEvents(),this},delegateEvents:function(e){if(!e&&!(e=a.result(this,"events")))return this;this.undelegateEvents();for(var t in e){var n=e[t];if(a.isFunction(n)||(n=this[e[t]]),n){var r=t.match(C),i=r[1],o=r[2];n=a.bind(n,this),i+=".delegateEvents"+this.cid,""===o?this.$el.on(i,n):this.$el.on(i,o,n)}}return this},undelegateEvents:function(){return this.$el.off(".delegateEvents"+this.cid),this},_configure:function(e){this.options&&(e=a.extend({},a.result(this,"options"),e)),a.extend(this,a.pick(e,S)),this.options=e},_ensureElement:function(){if(this.el)this.setElement(a.result(this,"el"),!1);else{var t=a.extend({},a.result(this,"attributes"));this.id&&(t.id=a.result(this,"id")),this.className&&(t["class"]=a.result(this,"className"));var n=e.$("<"+a.result(this,"tagName")+">").attr(t);this.setElement(n,!1)}}}),e.sync=function(t,n,r){var i=k[t];a.defaults(r||(r={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var o={type:i,dataType:"json"};if(r.url||(o.url=a.result(n,"url")||F()),null!=r.data||!n||"create"!==t&&"update"!==t&&"patch"!==t||(o.contentType="application/json",o.data=JSON.stringify(r.attrs||n.toJSON(r))),r.emulateJSON&&(o.contentType="application/x-www-form-urlencoded",o.data=o.data?{model:o.data}:{}),r.emulateHTTP&&("PUT"===i||"DELETE"===i||"PATCH"===i)){o.type="POST",r.emulateJSON&&(o.data._method=i);var s=r.beforeSend;r.beforeSend=function(e){return e.setRequestHeader("X-HTTP-Method-Override",i),s?s.apply(this,arguments):void 0}}"GET"===o.type||r.emulateJSON||(o.processData=!1),"PATCH"!==o.type||!window.ActiveXObject||window.external&&window.external.msActiveXFilteringEnabled||(o.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")});var l=r.xhr=e.ajax(a.extend(o,r));return n.trigger("request",n,l,r),l};var k={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var T=e.Router=function(e){e||(e={}),e.routes&&(this.routes=e.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},L=/\((.*?)\)/g,E=/(\(\?)?:\w+/g,N=/\*\w+/g,A=/[\-{}\[\]+?.,\\\^$|#\s]/g;a.extend(T.prototype,l,{initialize:function(){},route:function(t,n,r){a.isRegExp(t)||(t=this._routeToRegExp(t)),a.isFunction(n)&&(r=n,n=""),r||(r=this[n]);var i=this;return e.history.route(t,function(o){var s=i._extractParameters(t,o);r&&r.apply(i,s),i.trigger.apply(i,["route:"+n].concat(s)),i.trigger("route",n,s),e.history.trigger("route",i,n,s)}),this},navigate:function(t,n){return e.history.navigate(t,n),this},_bindRoutes:function(){if(this.routes){this.routes=a.result(this,"routes");for(var e,t=a.keys(this.routes);null!=(e=t.pop());)this.route(e,this.routes[e])}},_routeToRegExp:function(e){return e=e.replace(A,"\\$&").replace(L,"(?:$1)?").replace(E,function(e,t){return t?e:"([^/]+)"}).replace(N,"(.*?)"),new RegExp("^"+e+"$")},_extractParameters:function(e,t){var n=e.exec(t).slice(1);return a.map(n,function(e){return e?decodeURIComponent(e):null})}});var D=e.History=function(){this.handlers=[],a.bindAll(this,"checkUrl"),"undefined"!=typeof window&&(this.location=window.location,this.history=window.history)},M=/^[#\/]|\s+$/g,I=/^\/+|\/+$/g,$=/msie [\w.]+/,O=/\/$/;D.started=!1,a.extend(D.prototype,l,{interval:50,getHash:function(e){var t=(e||this).location.href.match(/#(.*)$/);return t?t[1]:""},getFragment:function(e,t){if(null==e)if(this._hasPushState||!this._wantsHashChange||t){e=this.location.pathname;var n=this.root.replace(O,"");e.indexOf(n)||(e=e.substr(n.length))}else e=this.getHash();return e.replace(M,"")},start:function(t){if(D.started)throw new Error("Backbone.history has already been started");D.started=!0,this.options=a.extend({},{root:"/"},this.options,t),this.root=this.options.root,this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var n=this.getFragment(),r=document.documentMode,i=$.exec(navigator.userAgent.toLowerCase())&&(!r||7>=r);this.root=("/"+this.root+"/").replace(I,"/"),i&&this._wantsHashChange&&(this.iframe=e.$('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(n)),this._hasPushState?e.$(window).on("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!i?e.$(window).on("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=n;var o=this.location,s=o.pathname.replace(/[^\/]$/,"$&/")===this.root;return this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!s?(this.fragment=this.getFragment(null,!0),this.location.replace(this.root+this.location.search+"#"+this.fragment),!0):(this._wantsPushState&&this._hasPushState&&s&&o.hash&&(this.fragment=this.getHash().replace(M,""),this.history.replaceState({},document.title,this.root+this.fragment+o.search)),this.options.silent?void 0:this.loadUrl())},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl),clearInterval(this._checkUrlInterval),D.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(){var e=this.getFragment();return e===this.fragment&&this.iframe&&(e=this.getFragment(this.getHash(this.iframe))),e===this.fragment?!1:(this.iframe&&this.navigate(e),this.loadUrl()||this.loadUrl(this.getHash()),void 0)},loadUrl:function(e){var t=this.fragment=this.getFragment(e),n=a.any(this.handlers,function(e){return e.route.test(t)?(e.callback(t),!0):void 0});return n},navigate:function(e,t){if(!D.started)return!1;if(t&&t!==!0||(t={trigger:t}),e=this.getFragment(e||""),this.fragment!==e){this.fragment=e;var n=this.root+e;if(this._hasPushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,n);else{if(!this._wantsHashChange)return this.location.assign(n);this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getFragment(this.getHash(this.iframe))&&(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,e,t.replace))}t.trigger&&this.loadUrl(e)}},_updateHash:function(e,t,n){if(n){var r=e.href.replace(/(javascript:|#).*$/,"");e.replace(r+"#"+t)}else e.hash="#"+t}}),e.history=new D;var P=function(e,t){var n,r=this;n=e&&a.has(e,"constructor")?e.constructor:function(){return r.apply(this,arguments)},a.extend(n,r,t);var i=function(){this.constructor=n};return i.prototype=r.prototype,n.prototype=new i,e&&a.extend(n.prototype,e),n.__super__=r.prototype,n};h.extend=g.extend=T.extend=x.extend=D.extend=P;var F=function(){throw new Error('A "url" property or function must be specified')},G=function(e,t){var n=t.error;t.error=function(r){n&&n(e,r,t),e.trigger("error",e,r,t)}}}.call(this),window.CodeMirror=function(){"use strict";function e(n,r){if(!(this instanceof e))return new e(n,r);this.options=r=r||{};for(var i in no)!r.hasOwnProperty(i)&&no.hasOwnProperty(i)&&(r[i]=no[i]);f(r);var o="string"==typeof r.value?0:r.value.first,s=this.display=t(n,o);s.wrapper.CodeMirror=this,c(this),r.autofocus&&!Fi&&ft(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,draggingText:!1,highlight:new Wr},a(this),r.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");var l=r.value;"string"==typeof l&&(l=new mo(r.value,r.mode)),it(this,ur)(this,l),Si&&setTimeout(Zr(dt,this,!0),20),pt(this);var u;try{u=document.activeElement==s.input}catch(d){}u||r.autofocus&&!Fi?setTimeout(Zr(Dt,this),20):Mt(this),it(this,function(){for(var e in to)to.propertyIsEnumerable(e)&&to[e](this,r[e],ro);for(var t=0;t<ao.length;++t)ao[t](this)})()}function t(e,t){var n={},r=n.input=ni("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none; font-size: 4px;");return Li?r.style.width="1000px":r.setAttribute("wrap","off"),Pi&&(r.style.border="1px solid black"),r.setAttribute("autocorrect","off"),r.setAttribute("autocapitalize","off"),r.setAttribute("spellcheck","false"),n.inputDiv=ni("div",[r],null,"overflow: hidden; position: relative; width: 3px; height: 0px;"),n.scrollbarH=ni("div",[ni("div",null,null,"height: 1px")],"CodeMirror-hscrollbar"),n.scrollbarV=ni("div",[ni("div",null,null,"width: 1px")],"CodeMirror-vscrollbar"),n.scrollbarFiller=ni("div",null,"CodeMirror-scrollbar-filler"),n.gutterFiller=ni("div",null,"CodeMirror-gutter-filler"),n.lineDiv=ni("div",null,"CodeMirror-code"),n.selectionDiv=ni("div",null,null,"position: relative; z-index: 1"),n.cursor=ni("div","\xa0","CodeMirror-cursor"),n.otherCursor=ni("div","\xa0","CodeMirror-cursor CodeMirror-secondarycursor"),n.measure=ni("div",null,"CodeMirror-measure"),n.lineSpace=ni("div",[n.measure,n.selectionDiv,n.lineDiv,n.cursor,n.otherCursor],null,"position: relative; outline: none"),n.mover=ni("div",[ni("div",[n.lineSpace],"CodeMirror-lines")],null,"position: relative"),n.sizer=ni("div",[n.mover],"CodeMirror-sizer"),n.heightForcer=ni("div",null,null,"position: absolute; height: "+wo+"px; width: 1px;"),n.gutters=ni("div",null,"CodeMirror-gutters"),n.lineGutter=null,n.scroller=ni("div",[n.sizer,n.heightForcer,n.gutters],"CodeMirror-scroll"),n.scroller.setAttribute("tabIndex","-1"),n.wrapper=ni("div",[n.inputDiv,n.scrollbarH,n.scrollbarV,n.scrollbarFiller,n.gutterFiller,n.scroller],"CodeMirror"),ki&&(n.gutters.style.zIndex=-1,n.scroller.style.paddingRight=0),e.appendChild?e.appendChild(n.wrapper):e(n.wrapper),Pi&&(r.style.width="0px"),Li||(n.scroller.draggable=!0),Mi?(n.inputDiv.style.height="1px",n.inputDiv.style.position="absolute"):ki&&(n.scrollbarH.style.minWidth=n.scrollbarV.style.minWidth="18px"),n.viewOffset=n.lastSizeC=0,n.showingFrom=n.showingTo=t,n.lineNumWidth=n.lineNumInnerWidth=n.lineNumChars=null,n.prevInput="",n.alignWidgets=!1,n.pollingFast=!1,n.poll=new Wr,n.cachedCharWidth=n.cachedTextHeight=null,n.measureLineCache=[],n.measureLineCachePos=0,n.inaccurateSelection=!1,n.maxLine=null,n.maxLineLength=0,n.maxLineChanged=!1,n.wheelDX=n.wheelDY=n.wheelStartX=n.wheelStartY=null,n}function n(t){t.doc.mode=e.getMode(t.options,t.doc.modeOption),t.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),t.doc.frontier=t.doc.first,M(t,100),t.state.modeGen++,t.curOp&&at(t)}function r(e){e.options.lineWrapping?(e.display.wrapper.className+=" CodeMirror-wrap",e.display.sizer.style.minWidth=""):(e.display.wrapper.className=e.display.wrapper.className.replace(" CodeMirror-wrap",""),d(e)),o(e),at(e),W(e),setTimeout(function(){h(e)},100)}function i(e){var t=et(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/tt(e.display)-3);return function(i){return jn(e.doc,i)?0:n?(Math.ceil(i.text.length/r)||1)*t:t}}function o(e){var t=e.doc,n=i(e);t.iter(function(e){var t=n(e);t!=e.height&&pr(e,t)})}function s(e){var t=co[e.options.keyMap],n=t.style;e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-keymap-\S+/g,"")+(n?" cm-keymap-"+n:""),e.state.disableInput=t.disableInput}function a(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),W(e)}function l(e){c(e),at(e),setTimeout(function(){m(e)},20)}function c(e){var t=e.display.gutters,n=e.options.gutters;ri(t);for(var r=0;r<n.length;++r){var i=n[r],o=t.appendChild(ni("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=r?"":"none"}function u(e,t){if(0==t.height)return 0;for(var n,r=t.text.length,i=t;n=Fn(i);){var o=n.find();i=dr(e,o.from.line),r+=o.from.ch-o.to.ch}for(i=t;n=Gn(i);){var o=n.find();r-=i.text.length-o.from.ch,i=dr(e,o.to.line),r+=i.text.length-o.to.ch}return r}function d(e){var t=e.display,n=e.doc;t.maxLine=dr(n,n.first),t.maxLineLength=u(n,t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var r=u(n,e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function f(e){for(var t=!1,n=0;n<e.gutters.length;++n)"CodeMirror-linenumbers"==e.gutters[n]&&(e.lineNumbers?t=!0:e.gutters.splice(n--,1));!t&&e.lineNumbers&&e.gutters.push("CodeMirror-linenumbers")}function h(e){var t=e.display,n=e.doc.height,r=n+F(t);t.sizer.style.minHeight=t.heightForcer.style.top=r+"px",t.gutters.style.height=Math.max(r,t.scroller.clientHeight-wo)+"px";var i=Math.max(r,t.scroller.scrollHeight),o=t.scroller.scrollWidth>t.scroller.clientWidth+1,s=i>t.scroller.clientHeight+1;s?(t.scrollbarV.style.display="block",t.scrollbarV.style.bottom=o?li(t.measure)+"px":"0",t.scrollbarV.firstChild.style.height=i-t.scroller.clientHeight+t.scrollbarV.clientHeight+"px"):t.scrollbarV.style.display="",o?(t.scrollbarH.style.display="block",t.scrollbarH.style.right=s?li(t.measure)+"px":"0",t.scrollbarH.firstChild.style.width=t.scroller.scrollWidth-t.scroller.clientWidth+t.scrollbarH.clientWidth+"px"):t.scrollbarH.style.display="",o&&s?(t.scrollbarFiller.style.display="block",t.scrollbarFiller.style.height=t.scrollbarFiller.style.width=li(t.measure)+"px"):t.scrollbarFiller.style.display="",o&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(t.gutterFiller.style.display="block",t.gutterFiller.style.height=li(t.measure)+"px",t.gutterFiller.style.width=t.gutters.offsetWidth+"px"):t.gutterFiller.style.display="",Ii&&0===li(t.measure)&&(t.scrollbarV.style.minWidth=t.scrollbarH.style.minHeight=$i?"18px":"12px")}function p(e,t,n){var r=e.scroller.scrollTop,i=e.wrapper.clientHeight;"number"==typeof n?r=n:n&&(r=n.top,i=n.bottom-n.top),r=Math.floor(r-P(e));var o=Math.ceil(r+i);return{from:gr(t,r),to:gr(t,o)}}function m(e){var t=e.display;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=b(t)-t.scroller.scrollLeft+e.doc.scrollLeft,r=t.gutters.offsetWidth,i=n+"px",o=t.lineDiv.firstChild;o;o=o.nextSibling)if(o.alignable)for(var s=0,a=o.alignable;s<a.length;++s)a[s].style.left=i;e.options.fixedGutter&&(t.gutters.style.left=n+r+"px")}}function g(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=v(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(ni("div",[ni("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,s=i.offsetWidth-o;return r.lineGutter.style.width="",r.lineNumInnerWidth=Math.max(o,r.lineGutter.offsetWidth-s),r.lineNumWidth=r.lineNumInnerWidth+s,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+"px",!0}return!1}function v(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function b(e){return si(e.scroller).left-si(e.sizer).left}function y(e,t,n){for(var r,i=e.display.showingFrom,o=e.display.showingTo,s=p(e.display,e.doc,n);w(e,t,s)&&(r=!0,E(e),h(e),n&&(n=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,"number"==typeof n?n:n.top)),s=p(e.display,e.doc,n),!(s.from>=e.display.showingFrom&&s.to<=e.display.showingTo));)t=[];return r&&(Rr(e,"update",e),(e.display.showingFrom!=i||e.display.showingTo!=o)&&Rr(e,"viewportChange",e,e.display.showingFrom,e.display.showingTo)),r}function w(e,t,n){var r=e.display,i=e.doc;if(!r.wrapper.clientWidth)return r.showingFrom=r.showingTo=i.first,r.viewOffset=0,void 0;if(!(0==t.length&&n.from>r.showingFrom&&n.to<r.showingTo)){g(e)&&(t=[{from:i.first,to:i.first+i.size}]);var o=r.sizer.style.marginLeft=r.gutters.offsetWidth+"px";r.scrollbarH.style.left=e.options.fixedGutter?o:"0";var s=1/0;if(e.options.lineNumbers)for(var a=0;a<t.length;++a)if(t[a].diff){s=t[a].from;break}var l=i.first+i.size,c=Math.max(n.from-e.options.viewportMargin,i.first),u=Math.min(l,n.to+e.options.viewportMargin);if(r.showingFrom<c&&c-r.showingFrom<20&&(c=Math.max(i.first,r.showingFrom)),r.showingTo>u&&r.showingTo-u<20&&(u=Math.min(l,r.showingTo)),Ui)for(c=mr(Hn(i,dr(i,c)));l>u&&jn(i,dr(i,u));)++u;var d=[{from:Math.max(r.showingFrom,i.first),to:Math.min(r.showingTo,l)}];if(d=d[0].from>=d[0].to?[]:C(d,t),Ui)for(var a=0;a<d.length;++a)for(var f,h=d[a];f=Gn(dr(i,h.to-1));){var p=f.find().from.line;if(!(p>h.from)){d.splice(a--,1);break}h.to=p}for(var m=0,a=0;a<d.length;++a){var h=d[a];h.from<c&&(h.from=c),h.to>u&&(h.to=u),h.from>=h.to?d.splice(a--,1):m+=h.to-h.from}if(m==u-c&&c==r.showingFrom&&u==r.showingTo)return x(e),void 0;d.sort(function(e,t){return e.from-t.from});try{var v=document.activeElement}catch(b){}.7*(u-c)>m&&(r.lineDiv.style.display="none"),k(e,c,u,d,s),r.lineDiv.style.display="",v&&document.activeElement!=v&&v.offsetHeight&&v.focus();var y=c!=r.showingFrom||u!=r.showingTo||r.lastSizeC!=r.wrapper.clientHeight;y&&(r.lastSizeC=r.wrapper.clientHeight,M(e,400)),r.showingFrom=c,r.showingTo=u;for(var w,S=r.lineDiv.offsetTop,T=r.lineDiv.firstChild;T;T=T.nextSibling)if(T.lineObj){if(ki){var L=T.offsetTop+T.offsetHeight;w=L-S,S=L}else{var E=si(T);w=E.bottom-E.top}var N=T.lineObj.height-w;if(2>w&&(w=et(r)),N>.001||-.001>N){pr(T.lineObj,w);var A=T.lineObj.widgets;if(A)for(var a=0;a<A.length;++a)A[a].height=A[a].node.offsetHeight}}return x(e),!0}}function x(e){var t=e.display.viewOffset=vr(e,dr(e.doc,e.display.showingFrom));e.display.mover.style.top=t+"px"}function C(e,t){for(var n=0,r=t.length||0;r>n;++n){for(var i=t[n],o=[],s=i.diff||0,a=0,l=e.length;l>a;++a){var c=e[a];i.to<=c.from&&i.diff?o.push({from:c.from+s,to:c.to+s}):i.to<=c.from||i.from>=c.to?o.push(c):(i.from>c.from&&o.push({from:c.from,to:i.from}),i.to<c.to&&o.push({from:i.to+s,to:c.to+s}))}e=o}return e}function S(e){for(var t=e.display,n={},r={},i=t.gutters.firstChild,o=0;i;i=i.nextSibling,++o)n[e.options.gutters[o]]=i.offsetLeft,r[e.options.gutters[o]]=i.offsetWidth;return{fixedPos:b(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function k(e,t,n,r,i){function o(t){var n=t.nextSibling;return Li&&Gi&&e.display.currentWheelTarget==t?(t.style.display="none",t.lineObj=null):t.parentNode.removeChild(t),n}var s=S(e),a=e.display,l=e.options.lineNumbers;r.length||Li&&e.display.currentWheelTarget||ri(a.lineDiv);var c=a.lineDiv,u=c.firstChild,d=r.shift(),f=t;for(e.doc.iter(t,n,function(t){if(d&&d.to==f&&(d=r.shift()),jn(e.doc,t)){if(0!=t.height&&pr(t,0),t.widgets&&u.previousSibling)for(var n=0;n<t.widgets.length;++n){var a=t.widgets[n];if(a.showIfHidden){var h=u.previousSibling;if(/pre/i.test(h.nodeName)){var p=ni("div",null,null,"position: relative");h.parentNode.replaceChild(p,h),p.appendChild(h),h=p}var m=h.appendChild(ni("div",[a.node],"CodeMirror-linewidget"));a.handleMouseEvents||(m.ignoreEvents=!0),L(a,m,h,s)}}}else if(d&&d.from<=f&&d.to>f){for(;u.lineObj!=t;)u=o(u);l&&f>=i&&u.lineNumber&&oi(u.lineNumber,v(e.options,f)),u=u.nextSibling}else{if(t.widgets)for(var g,b=0,y=u;y&&20>b;++b,y=y.nextSibling)if(y.lineObj==t&&/div/i.test(y.nodeName)){g=y;break}var w=T(e,t,f,s,g);if(w!=g)c.insertBefore(w,u);else{for(;u!=g;)u=o(u);u=u.nextSibling}w.lineObj=t}++f});u;)u=o(u)}function T(e,t,n,r,i){var o,s=er(e,t),a=t.gutterMarkers,l=e.display;if(!(e.options.lineNumbers||a||t.bgClass||t.wrapClass||t.widgets))return s;if(i){i.alignable=null;for(var c,u=!0,d=0,f=null,h=i.firstChild;h;h=c)if(c=h.nextSibling,/\bCodeMirror-linewidget\b/.test(h.className)){for(var p=0,m=!0;p<t.widgets.length;++p){var g=t.widgets[p];if(g.above||(f=h,m=!1),g.node==h.firstChild){L(g,h,i,r),++d;break}}if(p==t.widgets.length){u=!1;break}}else i.removeChild(h);i.insertBefore(s,f),u&&d==t.widgets.length&&(o=i,i.className=t.wrapClass||"")}if(o||(o=ni("div",null,t.wrapClass,"position: relative"),o.appendChild(s)),t.bgClass&&o.insertBefore(ni("div",null,t.bgClass+" CodeMirror-linebackground"),o.firstChild),e.options.lineNumbers||a){var b=o.insertBefore(ni("div",null,null,"position: absolute; left: "+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+"px"),o.firstChild);if(e.options.fixedGutter&&(o.alignable||(o.alignable=[])).push(b),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(o.lineNumber=b.appendChild(ni("div",v(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+r.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+l.lineNumInnerWidth+"px"))),a)for(var y=0;y<e.options.gutters.length;++y){var w=e.options.gutters[y],x=a.hasOwnProperty(w)&&a[w];x&&b.appendChild(ni("div",[x],"CodeMirror-gutter-elt","left: "+r.gutterLeft[w]+"px; width: "+r.gutterWidth[w]+"px"))}}if(ki&&(o.style.zIndex=2),t.widgets&&o!=i)for(var p=0,C=t.widgets;p<C.length;++p){var g=C[p],S=ni("div",[g.node],"CodeMirror-linewidget");g.handleMouseEvents||(S.ignoreEvents=!0),L(g,S,o,r),g.above?o.insertBefore(S,e.options.lineNumbers&&0!=t.height?b:s):o.appendChild(S),Rr(g,"redraw")}return o}function L(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function E(e){var t=e.display,n=Wt(e.doc.sel.from,e.doc.sel.to);if(n||e.options.showCursorWhenSelecting?N(e):t.cursor.style.display=t.otherCursor.style.display="none",n?t.selectionDiv.style.display="none":A(e),e.options.moveInputWithCursor){var r=J(e,e.doc.sel.head,"div"),i=si(t.wrapper),o=si(t.lineDiv);t.inputDiv.style.top=Math.max(0,Math.min(t.wrapper.clientHeight-10,r.top+o.top-i.top))+"px",t.inputDiv.style.left=Math.max(0,Math.min(t.wrapper.clientWidth-10,r.left+o.left-i.left))+"px"}}function N(e){var t=e.display,n=J(e,e.doc.sel.head,"div");t.cursor.style.left=n.left+"px",t.cursor.style.top=n.top+"px",t.cursor.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",t.cursor.style.display="",n.other?(t.otherCursor.style.display="",t.otherCursor.style.left=n.other.left+"px",t.otherCursor.style.top=n.other.top+"px",t.otherCursor.style.height=.85*(n.other.bottom-n.other.top)+"px"):t.otherCursor.style.display="none"}function A(e){function t(e,t,n,r){0>t&&(t=0),s.appendChild(ni("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==n?a-e:n)+"px; height: "+(r-t)+"px"))}function n(n,r,o){function s(t,r){return X(e,zt(n,t),"div",d,r)}var c,u,d=dr(i,n),f=d.text.length;return ui(br(d),r||0,null==o?f:o,function(e,n,i){var d,h,p,m=s(e,"left");if(e==n)d=m,h=p=m.left;else{if(d=s(n-1,"right"),"rtl"==i){var g=m;m=d,d=g}h=m.left,p=d.right}null==r&&0==e&&(h=l),d.top-m.top>3&&(t(h,m.top,null,m.bottom),h=l,m.bottom<d.top&&t(h,m.bottom,null,d.top)),null==o&&n==f&&(p=a),(!c||m.top<c.top||m.top==c.top&&m.left<c.left)&&(c=m),(!u||d.bottom>u.bottom||d.bottom==u.bottom&&d.right>u.right)&&(u=d),l+1>h&&(h=l),t(h,d.top,p-h,d.bottom)}),{start:c,end:u}}var r=e.display,i=e.doc,o=e.doc.sel,s=document.createDocumentFragment(),a=r.lineSpace.offsetWidth,l=G(e.display);if(o.from.line==o.to.line)n(o.from.line,o.from.ch,o.to.ch);else{var c=dr(i,o.from.line),u=dr(i,o.to.line),d=Hn(i,c)==Hn(i,u),f=n(o.from.line,o.from.ch,d?c.text.length:null).end,h=n(o.to.line,d?0:null,o.to.ch).start;d&&(f.top<h.top-2?(t(f.right,f.top,null,f.bottom),t(l,h.top,h.left,h.bottom)):t(f.right,f.top,h.left-f.right,f.bottom)),f.bottom<h.top&&t(l,f.bottom,null,h.top)}ii(r.selectionDiv,s),r.selectionDiv.style.display=""}function D(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursor.style.visibility=t.otherCursor.style.visibility="",t.blinker=setInterval(function(){t.cursor.style.visibility=t.otherCursor.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate)}}function M(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.showingTo&&e.state.highlight.set(t,Zr(I,e))}function I(e){var t=e.doc;if(t.frontier<t.first&&(t.frontier=t.first),!(t.frontier>=e.display.showingTo)){var n,r=+new Date+e.options.workTime,i=gn(t.mode,O(e,t.frontier)),o=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.showingTo+500),function(s){if(t.frontier>=e.display.showingFrom){var a=s.styles;s.styles=Jn(e,s,i);for(var l=!a||a.length!=s.styles.length,c=0;!l&&c<a.length;++c)l=a[c]!=s.styles[c];l&&(n&&n.end==t.frontier?n.end++:o.push(n={start:t.frontier,end:t.frontier+1})),s.stateAfter=gn(t.mode,i)}else Yn(e,s,i),s.stateAfter=t.frontier%5==0?gn(t.mode,i):null;return++t.frontier,+new Date>r?(M(e,e.options.workDelay),!0):void 0}),o.length&&it(e,function(){for(var e=0;e<o.length;++e)at(this,o[e].start,o[e].end)})()}}function $(e,t,n){for(var r,i,o=e.doc,s=t,a=t-100;s>a;--s){if(s<=o.first)return o.first;var l=dr(o,s-1);if(l.stateAfter&&(!n||s<=o.frontier))return s;var c=Vr(l.text,null,e.options.tabSize);(null==i||r>c)&&(i=s-1,r=c)}return i}function O(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return!0;var o=$(e,t,n),s=o>r.first&&dr(r,o-1).stateAfter;return s=s?gn(r.mode,s):vn(r.mode),r.iter(o,t,function(n){Yn(e,n,s);var a=o==t-1||o%5==0||o>=i.showingFrom&&o<i.showingTo;n.stateAfter=a?gn(r.mode,s):null,++o}),s}function P(e){return e.lineSpace.offsetTop}function F(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function G(e){var t=ii(e.measure,ni("pre",null,null,"text-align: left")).appendChild(ni("span","x"));return t.offsetLeft}function H(e,t,n,r,i){var o=-1;r=r||_(e,t);for(var s=n;;s+=o){var a=r[s];if(a)break;0>o&&0==s&&(o=1)}var l=(n>s||"right"==i)&&null!=a.topRight;return{left:n>s?a.right:a.left,right:s>n?a.left:a.right,top:l?a.topRight:a.top,bottom:l?a.bottomRight:a.bottom}}function j(e,t){for(var n=e.display.measureLineCache,r=0;r<n.length;++r){var i=n[r];if(i.text==t.text&&i.markedSpans==t.markedSpans&&e.display.scroller.clientWidth==i.width&&i.classes==t.textClass+"|"+t.bgClass+"|"+t.wrapClass)return i}}function R(e,t){var n=j(e,t);n&&(n.text=n.measure=n.markedSpans=null)}function _(e,t){var n=j(e,t);if(n)return n.measure;var r=B(e,t),i=e.display.measureLineCache,o={text:t.text,width:e.display.scroller.clientWidth,markedSpans:t.markedSpans,measure:r,classes:t.textClass+"|"+t.bgClass+"|"+t.wrapClass};return 16==i.length?i[++e.display.measureLineCachePos%16]=o:i.push(o),r}function B(e,t){function n(e,t){t>g&&(t=g),0>e&&(e=0);for(var n=0;n<p.length;n+=2){var r=p[n],i=p[n+1];if(!(r>t||e>i)&&(e>=r&&i>=t||r>=e&&t>=i||Math.min(t,i)-Math.max(e,r)>=t-e>>1))return p[n]=Math.min(e,r),p[n+1]=Math.max(t,i),n}return p.push(e,t),n}var r=e.display,i=Yr(t.text.length),o=er(e,t,i);if(Si&&!ki&&!e.options.lineWrapping&&o.childNodes.length>100){for(var s=document.createDocumentFragment(),a=10,l=o.childNodes.length,c=0,u=Math.ceil(l/a);u>c;++c){for(var d=ni("div",null,null,"display: inline-block"),f=0;a>f&&l;++f)d.appendChild(o.firstChild),--l;s.appendChild(d)}o.appendChild(s)}ii(r.measure,o);var h=si(r.lineDiv),p=[],m=Yr(t.text.length),g=o.offsetHeight;Ti&&r.measure.first!=o&&ii(r.measure,o);for(var v,c=0;c<i.length;++c)if(v=i[c]){var b,y=v;if(/\bCodeMirror-widget\b/.test(v.className)&&v.getClientRects){1==v.firstChild.nodeType&&(y=v.firstChild);var w=y.getClientRects(),x=w[0],C=w[w.length-1];if(w.length>1){var S=n(x.top-h.top,x.bottom-h.top),k=n(C.top-h.top,C.bottom-h.top);m[c]={left:x.left-h.left,right:C.right-h.left,top:S,topRight:k};continue}}b=si(y);var T=n(b.top-h.top,b.bottom-h.top),L=b.right;v.measureRight&&(L=si(v.measureRight).left),m[c]={left:b.left-h.left,right:L-h.left,top:T}}for(var v,c=0;c<m.length;++c)if(v=m[c]){var E=v.top,N=v.topRight;v.top=p[E],v.bottom=p[E+1],null!=N&&(v.topRight=p[N],v.bottomRight=p[N+1])}return m}function z(e,t){var n=!1;if(t.markedSpans)for(var r=0;r<t.markedSpans;++r){var i=t.markedSpans[r];!i.collapsed||null!=i.to&&i.to!=t.text.length||(n=!0)}var o=!n&&j(e,t);if(o)return H(e,t,t.text.length,o.measure,"right").right;var s=er(e,t),a=s.appendChild(ci(e.display.measure));return ii(e.display.measure,s),si(a).right-si(e.display.lineDiv).left}function W(e){e.display.measureLineCache.length=e.display.measureLineCachePos=0,e.display.cachedCharWidth=e.display.cachedTextHeight=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function V(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function U(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function q(e,t,n,r){if(t.widgets)for(var i=0;i<t.widgets.length;++i)if(t.widgets[i].above){var o=Wn(t.widgets[i]);n.top+=o,n.bottom+=o}if("line"==r)return n;r||(r="local");var s=vr(e,t);if("local"==r?s+=P(e.display):s-=e.display.viewOffset,"page"==r||"window"==r){var a=si(e.display.lineSpace);
s+=a.top+("window"==r?0:U());var l=a.left+("window"==r?0:V());n.left+=l,n.right+=l}return n.top+=s,n.bottom+=s,n}function K(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=V(),i-=U();else if("local"==n||!n){var o=si(e.display.sizer);r+=o.left,i+=o.top}var s=si(e.display.lineSpace);return{left:r-s.left,top:i-s.top}}function X(e,t,n,r,i){return r||(r=dr(e.doc,t.line)),q(e,r,H(e,r,t.ch,null,i),n)}function J(e,t,n,r,i){function o(t,o){var s=H(e,r,t,i,o?"right":"left");return o?s.left=s.right:s.right=s.left,q(e,r,s,n)}function s(e,t){var n=a[t],r=n.level%2;return e==di(n)&&t&&n.level<a[t-1].level?(n=a[--t],e=fi(n)-(n.level%2?0:1),r=!0):e==fi(n)&&t<a.length-1&&n.level<a[t+1].level&&(n=a[++t],e=di(n)-n.level%2,r=!1),r&&e==n.to&&e>n.from?o(e-1):o(e,r)}r=r||dr(e.doc,t.line),i||(i=_(e,r));var a=br(r),l=t.ch;if(!a)return o(l);var c=bi(a,l),u=s(l,c);return null!=Io&&(u.other=s(l,Io)),u}function Q(e,t,n,r){var i=new zt(e,t);return i.xRel=r,n&&(i.outside=!0),i}function Y(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,0>n)return Q(r.first,0,!0,-1);var i=gr(r,n),o=r.first+r.size-1;if(i>o)return Q(r.first+r.size-1,dr(r,o).text.length,!0,1);for(0>t&&(t=0);;){var s=dr(r,i),a=Z(e,s,i,t,n),l=Gn(s),c=l&&l.find();if(!l||!(a.ch>c.from.ch||a.ch==c.from.ch&&a.xRel>0))return a;i=c.to.line}}function Z(e,t,n,r,i){function o(r){var i=J(e,zt(n,r),"line",t,c);return a=!0,s>i.bottom?i.left-l:s<i.top?i.left+l:(a=!1,i.left)}var s=i-vr(e,t),a=!1,l=2*e.display.wrapper.clientWidth,c=_(e,t),u=br(t),d=t.text.length,f=hi(t),h=pi(t),p=o(f),m=a,g=o(h),v=a;if(r>g)return Q(n,h,v,1);for(;;){if(u?h==f||h==wi(t,f,1):1>=h-f){for(var b=p>r||g-r>=r-p?f:h,y=r-(b==f?p:g);ko.test(t.text.charAt(b));)++b;var w=Q(n,b,b==f?m:v,0>y?-1:y?1:0);return w}var x=Math.ceil(d/2),C=f+x;if(u){C=f;for(var S=0;x>S;++S)C=wi(t,C,1)}var k=o(C);k>r?(h=C,g=k,(v=a)&&(g+=1e3),d=x):(f=C,p=k,m=a,d-=x)}}function et(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ri){Ri=ni("pre");for(var t=0;49>t;++t)Ri.appendChild(document.createTextNode("x")),Ri.appendChild(ni("br"));Ri.appendChild(document.createTextNode("x"))}ii(e.measure,Ri);var n=Ri.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),ri(e.measure),n||1}function tt(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=ni("span","x"),n=ni("pre",[t]);ii(e.measure,n);var r=t.offsetWidth;return r>2&&(e.cachedCharWidth=r),r||10}function nt(e){e.curOp={changes:[],updateInput:null,userSelChange:null,textChanged:null,selectionChanged:!1,cursorActivity:!1,updateMaxLine:!1,updateScrollPos:!1,id:++qi},yo++||(bo=[])}function rt(e){var t=e.curOp,n=e.doc,r=e.display;if(e.curOp=null,t.updateMaxLine&&d(e),r.maxLineChanged&&!e.options.lineWrapping&&r.maxLine){var i=z(e,r.maxLine);r.sizer.style.minWidth=Math.max(0,i+3+wo)+"px",r.maxLineChanged=!1;var o=Math.max(0,r.sizer.offsetLeft+r.sizer.offsetWidth-r.scroller.clientWidth);o<n.scrollLeft&&!t.updateScrollPos&&Ct(e,Math.min(r.scroller.scrollLeft,o),!0)}var s,a;if(t.updateScrollPos)s=t.updateScrollPos;else if(t.selectionChanged&&r.scroller.clientHeight){var l=J(e,n.sel.head);s=sn(e,l.left,l.top,l.left,l.bottom)}(t.changes.length||s&&null!=s.scrollTop)&&(a=y(e,t.changes,s&&s.scrollTop),e.display.scroller.offsetHeight&&(e.doc.scrollTop=e.display.scroller.scrollTop)),!a&&t.selectionChanged&&E(e),t.updateScrollPos?(r.scroller.scrollTop=r.scrollbarV.scrollTop=n.scrollTop=s.scrollTop,r.scroller.scrollLeft=r.scrollbarH.scrollLeft=n.scrollLeft=s.scrollLeft,m(e),t.scrollToPos&&rn(e,Kt(e.doc,t.scrollToPos),t.scrollToPosMargin)):s&&nn(e),t.selectionChanged&&D(e),e.state.focused&&t.updateInput&&dt(e,t.userSelChange);var c=t.maybeHiddenMarkers,u=t.maybeUnhiddenMarkers;if(c)for(var f=0;f<c.length;++f)c[f].lines.length||jr(c[f],"hide");if(u)for(var f=0;f<u.length;++f)u[f].lines.length&&jr(u[f],"unhide");var h;if(--yo||(h=bo,bo=null),t.textChanged&&jr(e,"change",e,t.textChanged),t.cursorActivity&&jr(e,"cursorActivity",e),h)for(var f=0;f<h.length;++f)h[f]()}function it(e,t){return function(){var n=e||this,r=!n.curOp;r&&nt(n);try{var i=t.apply(n,arguments)}finally{r&&rt(n)}return i}}function ot(e){return function(){var t,n=this.cm&&!this.cm.curOp;n&&nt(this.cm);try{t=e.apply(this,arguments)}finally{n&&rt(this.cm)}return t}}function st(e,t){var n,r=!e.curOp;r&&nt(e);try{n=t()}finally{r&&rt(e)}return n}function at(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),e.curOp.changes.push({from:t,to:n,diff:r})}function lt(e){e.display.pollingFast||e.display.poll.set(e.options.pollInterval,function(){ut(e),e.state.focused&&lt(e)})}function ct(e){function t(){var r=ut(e);r||n?(e.display.pollingFast=!1,lt(e)):(n=!0,e.display.poll.set(60,t))}var n=!1;e.display.pollingFast=!0,e.display.poll.set(20,t)}function ut(e){var t=e.display.input,n=e.display.prevInput,r=e.doc,i=r.sel;if(!e.state.focused||Ao(t)||ht(e)||e.state.disableInput)return!1;var o=t.value;if(o==n&&Wt(i.from,i.to))return!1;if(Si&&!Ti&&e.display.inputHasSelection===o)return dt(e,!0),!1;var s=!e.curOp;s&&nt(e),i.shift=!1;for(var a=0,l=Math.min(n.length,o.length);l>a&&n.charCodeAt(a)==o.charCodeAt(a);)++a;var c=i.from,u=i.to;a<n.length?c=zt(c.line,c.ch-(n.length-a)):e.state.overwrite&&Wt(c,u)&&!e.state.pasteIncoming&&(u=zt(u.line,Math.min(dr(r,u.line).text.length,u.ch+(o.length-a))));var d=e.curOp.updateInput,f={from:c,to:u,text:No(o.slice(a)),origin:e.state.pasteIncoming?"paste":"+input"};return Ft(e.doc,f,"end"),e.curOp.updateInput=d,Rr(e,"inputRead",e,f),o.length>1e3||o.indexOf("\n")>-1?t.value=e.display.prevInput="":e.display.prevInput=o,s&&rt(e),e.state.pasteIncoming=!1,!0}function dt(e,t){var n,r,i=e.doc;if(Wt(i.sel.from,i.sel.to))t&&(e.display.prevInput=e.display.input.value="",Si&&!Ti&&(e.display.inputHasSelection=null));else{e.display.prevInput="",n=Do&&(i.sel.to.line-i.sel.from.line>100||(r=e.getSelection()).length>1e3);var o=n?"-":r||e.getSelection();e.display.input.value=o,e.state.focused&&Kr(e.display.input),Si&&!Ti&&(e.display.inputHasSelection=o)}e.display.inaccurateSelection=n}function ft(e){"nocursor"==e.options.readOnly||Fi&&document.activeElement==e.display.input||e.display.input.focus()}function ht(e){return e.options.readOnly||e.doc.cantEdit}function pt(e){function t(){e.state.focused&&setTimeout(Zr(ft,e),0)}function n(){null==a&&(a=setTimeout(function(){a=null,s.cachedCharWidth=s.cachedTextHeight=Lo=null,W(e),st(e,Zr(at,e))},100))}function r(){for(var e=s.wrapper.parentNode;e&&e!=document.body;e=e.parentNode);e?setTimeout(r,5e3):Hr(window,"resize",n)}function i(t){_r(e,t)||e.options.onDragEvent&&e.options.onDragEvent(e,Dr(t))||Or(t)}function o(){s.inaccurateSelection&&(s.prevInput="",s.inaccurateSelection=!1,s.input.value=e.getSelection(),Kr(s.input))}var s=e.display;Gr(s.scroller,"mousedown",it(e,vt)),Si?Gr(s.scroller,"dblclick",it(e,function(t){if(!_r(e,t)){var n=gt(e,t);if(n&&!bt(e,t)&&!mt(e.display,t)){Mr(t);var r=hn(dr(e.doc,n.line).text,n);Qt(e.doc,r.from,r.to)}}})):Gr(s.scroller,"dblclick",function(t){_r(e,t)||Mr(t)}),Gr(s.lineSpace,"selectstart",function(e){mt(s,e)||Mr(e)}),Wi||Gr(s.scroller,"contextmenu",function(t){It(e,t)}),Gr(s.scroller,"scroll",function(){s.scroller.clientHeight&&(xt(e,s.scroller.scrollTop),Ct(e,s.scroller.scrollLeft,!0),jr(e,"scroll",e))}),Gr(s.scrollbarV,"scroll",function(){s.scroller.clientHeight&&xt(e,s.scrollbarV.scrollTop)}),Gr(s.scrollbarH,"scroll",function(){s.scroller.clientHeight&&Ct(e,s.scrollbarH.scrollLeft)}),Gr(s.scroller,"mousewheel",function(t){St(e,t)}),Gr(s.scroller,"DOMMouseScroll",function(t){St(e,t)}),Gr(s.scrollbarH,"mousedown",t),Gr(s.scrollbarV,"mousedown",t),Gr(s.wrapper,"scroll",function(){s.wrapper.scrollTop=s.wrapper.scrollLeft=0});var a;Gr(window,"resize",n),setTimeout(r,5e3),Gr(s.input,"keyup",it(e,function(t){_r(e,t)||e.options.onKeyEvent&&e.options.onKeyEvent(e,Dr(t))||16==t.keyCode&&(e.doc.sel.shift=!1)})),Gr(s.input,"input",Zr(ct,e)),Gr(s.input,"keydown",it(e,Nt)),Gr(s.input,"keypress",it(e,At)),Gr(s.input,"focus",Zr(Dt,e)),Gr(s.input,"blur",Zr(Mt,e)),e.options.dragDrop&&(Gr(s.scroller,"dragstart",function(t){wt(e,t)}),Gr(s.scroller,"dragenter",i),Gr(s.scroller,"dragover",i),Gr(s.scroller,"drop",it(e,yt))),Gr(s.scroller,"paste",function(t){mt(s,t)||(ft(e),ct(e))}),Gr(s.input,"paste",function(){e.state.pasteIncoming=!0,ct(e)}),Gr(s.input,"cut",o),Gr(s.input,"copy",o),Mi&&Gr(s.sizer,"mouseup",function(){document.activeElement==s.input&&s.input.blur(),ft(e)})}function mt(e,t){for(var n=Pr(t);n!=e.wrapper;n=n.parentNode)if(!n||n.ignoreEvents||n.parentNode==e.sizer&&n!=e.mover)return!0}function gt(e,t,n){var r=e.display;if(!n){var i=Pr(t);if(i==r.scrollbarH||i==r.scrollbarH.firstChild||i==r.scrollbarV||i==r.scrollbarV.firstChild||i==r.scrollbarFiller||i==r.gutterFiller)return null}var o,s,a=si(r.lineSpace);try{o=t.clientX,s=t.clientY}catch(t){return null}return Y(e,o-a.left,s-a.top)}function vt(e){function t(e){if(!Wt(v,e)){if(v=e,"single"==u)return Qt(i.doc,Kt(s,l),e),void 0;if(m=Kt(s,m),g=Kt(s,g),"double"==u){var t=hn(dr(s,e.line).text,e);Vt(e,m)?Qt(i.doc,t.from,g):Qt(i.doc,m,t.to)}else"triple"==u&&(Vt(e,m)?Qt(i.doc,g,Kt(s,zt(e.line,0))):Qt(i.doc,m,Kt(s,zt(e.line+1,0))))}}function n(e){var r=++y,a=gt(i,e,!0);if(a)if(Wt(a,f)){var l=e.clientY<b.top?-20:e.clientY>b.bottom?20:0;l&&setTimeout(it(i,function(){y==r&&(o.scroller.scrollTop+=l,n(e))}),50)}else{i.state.focused||Dt(i),f=a,t(a);var c=p(o,s);(a.line>=c.to||a.line<c.from)&&setTimeout(it(i,function(){y==r&&n(e)}),150)}}function r(e){y=1/0,Mr(e),ft(i),Hr(document,"mousemove",w),Hr(document,"mouseup",x)}if(!_r(this,e)){var i=this,o=i.display,s=i.doc,a=s.sel;if(a.shift=e.shiftKey,mt(o,e))return Li||(o.scroller.draggable=!1,setTimeout(function(){o.scroller.draggable=!0},100)),void 0;if(!bt(i,e)){var l=gt(i,e);switch(Fr(e)){case 3:return Wi&&It.call(i,i,e),void 0;case 2:return l&&Qt(i.doc,l),setTimeout(Zr(ft,i),20),Mr(e),void 0}if(!l)return Pr(e)==o.scroller&&Mr(e),void 0;i.state.focused||Dt(i);var c=+new Date,u="single";if(Bi&&Bi.time>c-400&&Wt(Bi.pos,l))u="triple",Mr(e),setTimeout(Zr(ft,i),20),pn(i,l.line);else if(_i&&_i.time>c-400&&Wt(_i.pos,l)){u="double",Bi={time:c,pos:l},Mr(e);var d=hn(dr(s,l.line).text,l);Qt(i.doc,d.from,d.to)}else _i={time:c,pos:l};var f=l;if(i.options.dragDrop&&To&&!ht(i)&&!Wt(a.from,a.to)&&!Vt(l,a.from)&&!Vt(a.to,l)&&"single"==u){var h=it(i,function(t){Li&&(o.scroller.draggable=!1),i.state.draggingText=!1,Hr(document,"mouseup",h),Hr(o.scroller,"drop",h),Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)<10&&(Mr(t),Qt(i.doc,l),ft(i))});return Li&&(o.scroller.draggable=!0),i.state.draggingText=h,o.scroller.dragDrop&&o.scroller.dragDrop(),Gr(document,"mouseup",h),Gr(o.scroller,"drop",h),void 0}Mr(e),"single"==u&&Qt(i.doc,Kt(s,l));var m=a.from,g=a.to,v=l,b=si(o.wrapper),y=0,w=it(i,function(e){Si||Fr(e)?n(e):r(e)}),x=it(i,r);Gr(document,"mousemove",w),Gr(document,"mouseup",x)}}}function bt(e,t){var n=e.display;try{var r=t.clientX,i=t.clientY}catch(t){return!1}if(r>=Math.floor(si(n.gutters).right))return!1;if(Mr(t),!zr(e,"gutterClick"))return!0;var o=si(n.lineDiv);if(i>o.bottom)return!0;i-=o.top-n.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var a=n.gutters.childNodes[s];if(a&&si(a).right>=r){var l=gr(e.doc,i),c=e.options.gutters[s];Rr(e,"gutterClick",e,l,c,t);break}}return!0}function yt(e){var t=this;if(!(_r(t,e)||mt(t.display,e)||t.options.onDragEvent&&t.options.onDragEvent(t,Dr(e)))){Mr(e),Si&&(Ki=+new Date);var n=gt(t,e,!0),r=e.dataTransfer.files;if(n&&!ht(t))if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),s=0,a=function(e,r){var a=new FileReader;a.onload=function(){o[r]=a.result,++s==i&&(n=Kt(t.doc,n),Ft(t.doc,{from:n,to:n,text:No(o.join("\n")),origin:"paste"},"around"))},a.readAsText(e)},l=0;i>l;++l)a(r[l],l);else{if(t.state.draggingText&&!Vt(n,t.doc.sel.from)&&!Vt(t.doc.sel.to,n))return t.state.draggingText(e),setTimeout(Zr(ft,t),20),void 0;try{var o=e.dataTransfer.getData("Text");if(o){var c=t.doc.sel.from,u=t.doc.sel.to;Zt(t.doc,n,n),t.state.draggingText&&Bt(t.doc,"",c,u,"paste"),t.replaceSelection(o,null,"paste"),ft(t),Dt(t)}}catch(e){}}}}function wt(e,t){if(Si&&(!e.state.draggingText||+new Date-Ki<100))return Or(t),void 0;if(!_r(e,t)&&!mt(e.display,t)){var n=e.getSelection();if(t.dataTransfer.setData("Text",n),t.dataTransfer.setDragImage&&!Di){var r=ni("img",null,null,"position: fixed; left: 0; top: 0;");Ai&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),Ai&&r.parentNode.removeChild(r)}}}function xt(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,Ci||y(e,[],t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbarV.scrollTop!=t&&(e.display.scrollbarV.scrollTop=t),Ci&&y(e,[]),M(e,100))}function Ct(e,t,n){(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,m(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbarH.scrollLeft!=t&&(e.display.scrollbarH.scrollLeft=t))}function St(e,t){var n=t.wheelDeltaX,r=t.wheelDeltaY;null==n&&t.detail&&t.axis==t.HORIZONTAL_AXIS&&(n=t.detail),null==r&&t.detail&&t.axis==t.VERTICAL_AXIS?r=t.detail:null==r&&(r=t.wheelDelta);var i=e.display,o=i.scroller;if(n&&o.scrollWidth>o.clientWidth||r&&o.scrollHeight>o.clientHeight){if(r&&Gi&&Li)for(var s=t.target;s!=o;s=s.parentNode)if(s.lineObj){e.display.currentWheelTarget=s;break}if(n&&!Ci&&!Ai&&null!=Ji)return r&&xt(e,Math.max(0,Math.min(o.scrollTop+r*Ji,o.scrollHeight-o.clientHeight))),Ct(e,Math.max(0,Math.min(o.scrollLeft+n*Ji,o.scrollWidth-o.clientWidth))),Mr(t),i.wheelStartX=null,void 0;if(r&&null!=Ji){var a=r*Ji,l=e.doc.scrollTop,c=l+i.wrapper.clientHeight;0>a?l=Math.max(0,l+a-50):c=Math.min(e.doc.height,c+a+50),y(e,[],{top:l,bottom:c})}20>Xi&&(null==i.wheelStartX?(i.wheelStartX=o.scrollLeft,i.wheelStartY=o.scrollTop,i.wheelDX=n,i.wheelDY=r,setTimeout(function(){if(null!=i.wheelStartX){var e=o.scrollLeft-i.wheelStartX,t=o.scrollTop-i.wheelStartY,n=t&&i.wheelDY&&t/i.wheelDY||e&&i.wheelDX&&e/i.wheelDX;i.wheelStartX=i.wheelStartY=null,n&&(Ji=(Ji*Xi+n)/(Xi+1),++Xi)}},200)):(i.wheelDX+=n,i.wheelDY+=r))}}function kt(e,t,n){if("string"==typeof t&&(t=lo[t],!t))return!1;e.display.pollingFast&&ut(e)&&(e.display.pollingFast=!1);var r=e.doc,i=r.sel.shift,o=!1;try{ht(e)&&(e.state.suppressEdits=!0),n&&(r.sel.shift=!1),o=t(e)!=xo}finally{r.sel.shift=i,e.state.suppressEdits=!1}return o}function Tt(e){var t=e.state.keyMaps.slice(0);return e.options.extraKeys&&t.push(e.options.extraKeys),t.push(e.options.keyMap),t}function Lt(e,t){var n=bn(e.options.keyMap),r=n.auto;clearTimeout(Qi),r&&!wn(t)&&(Qi=setTimeout(function(){bn(e.options.keyMap)==n&&(e.options.keyMap=r.call?r.call(null,e):r,s(e))},50));var i=xn(t,!0),o=!1;if(!i)return!1;var a=Tt(e);return o=t.shiftKey?yn("Shift-"+i,a,function(t){return kt(e,t,!0)})||yn(i,a,function(t){return("string"==typeof t?/^go[A-Z]/.test(t):t.motion)?kt(e,t):void 0}):yn(i,a,function(t){return kt(e,t)}),o&&(Mr(t),D(e),Ti&&(t.oldKeyCode=t.keyCode,t.keyCode=0),Rr(e,"keyHandled",e,i,t)),o}function Et(e,t,n){var r=yn("'"+n+"'",Tt(e),function(t){return kt(e,t,!0)});return r&&(Mr(t),D(e),Rr(e,"keyHandled",e,"'"+n+"'",t)),r}function Nt(e){var t=this;if(t.state.focused||Dt(t),Si&&27==e.keyCode&&(e.returnValue=!1),!(_r(t,e)||t.options.onKeyEvent&&t.options.onKeyEvent(t,Dr(e)))){var n=e.keyCode;t.doc.sel.shift=16==n||e.shiftKey;var r=Lt(t,e);Ai&&(Zi=r?n:null,!r&&88==n&&!Do&&(Gi?e.metaKey:e.ctrlKey)&&t.replaceSelection(""))}}function At(e){var t=this;if(!(_r(t,e)||t.options.onKeyEvent&&t.options.onKeyEvent(t,Dr(e)))){var n=e.keyCode,r=e.charCode;if(Ai&&n==Zi)return Zi=null,Mr(e),void 0;if(!(Ai&&(!e.which||e.which<10)||Mi)||!Lt(t,e)){var i=String.fromCharCode(null==r?n:r);this.options.electricChars&&this.doc.mode.electricChars&&this.options.smartIndent&&!ht(this)&&this.doc.mode.electricChars.indexOf(i)>-1&&setTimeout(it(t,function(){cn(t,t.doc.sel.to.line,"smart")}),75),Et(t,e,i)||(Si&&!Ti&&(t.display.inputHasSelection=null),ct(t))}}}function Dt(e){"nocursor"!=e.options.readOnly&&(e.state.focused||(jr(e,"focus",e),e.state.focused=!0,-1==e.display.wrapper.className.search(/\bCodeMirror-focused\b/)&&(e.display.wrapper.className+=" CodeMirror-focused"),dt(e,!0)),lt(e),D(e))}function Mt(e){e.state.focused&&(jr(e,"blur",e),e.state.focused=!1,e.display.wrapper.className=e.display.wrapper.className.replace(" CodeMirror-focused","")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.doc.sel.shift=!1)},150)}function It(e,t){function n(){if(null!=i.input.selectionStart){var e=i.input.value=" "+(Wt(o.from,o.to)?"":i.input.value);i.prevInput=" ",i.input.selectionStart=1,i.input.selectionEnd=e.length}}function r(){if(i.inputDiv.style.position="relative",i.input.style.cssText=l,Ti&&(i.scrollbarV.scrollTop=i.scroller.scrollTop=a),lt(e),null!=i.input.selectionStart){(!Si||Ti)&&n(),clearTimeout(Yi);var t=0,r=function(){" "==i.prevInput&&0==i.input.selectionStart?it(e,lo.selectAll)(e):t++<10?Yi=setTimeout(r,500):dt(e)};Yi=setTimeout(r,200)}}var i=e.display,o=e.doc.sel;if(!mt(i,t)){var s=gt(e,t),a=i.scroller.scrollTop;if(s&&!Ai){(Wt(o.from,o.to)||Vt(s,o.from)||!Vt(s,o.to))&&it(e,Zt)(e.doc,s,s);var l=i.input.style.cssText;if(i.inputDiv.style.position="absolute",i.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(t.clientY-5)+"px; left: "+(t.clientX-5)+"px; z-index: 1000; background: white; outline: none;border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);",ft(e),dt(e,!0),Wt(o.from,o.to)&&(i.input.value=i.prevInput=" "),Si&&!Ti&&n(),Wi){Or(t);var c=function(){Hr(window,"mouseup",c),setTimeout(r,20)};Gr(window,"mouseup",c)}else setTimeout(r,50)}}}function $t(e,t,n){if(!Vt(t.from,n))return Kt(e,n);var r=t.text.length-1-(t.to.line-t.from.line);if(n.line>t.to.line+r){var i=n.line-r,o=e.first+e.size-1;return i>o?zt(o,dr(e,o).text.length):Xt(n,dr(e,i).text.length)}if(n.line==t.to.line+r)return Xt(n,qr(t.text).length+(1==t.text.length?t.from.ch:0)+dr(e,t.to.line).text.length-t.to.ch);var s=n.line-t.from.line;return Xt(n,t.text[s].length+(s?0:t.from.ch))}function Ot(e,t,n){if(n&&"object"==typeof n)return{anchor:$t(e,t,n.anchor),head:$t(e,t,n.head)};if("start"==n)return{anchor:t.from,head:t.from};var r=eo(t);if("around"==n)return{anchor:t.from,head:r};if("end"==n)return{anchor:r,head:r};var i=function(e){if(Vt(e,t.from))return e;if(!Vt(t.to,e))return r;var n=e.line+t.text.length-(t.to.line-t.from.line)-1,i=e.ch;return e.line==t.to.line&&(i+=r.ch-t.to.ch),zt(n,i)};return{anchor:i(e.sel.anchor),head:i(e.sel.head)}}function Pt(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){this.canceled=!0}};return n&&(r.update=function(t,n,r,i){t&&(this.from=Kt(e,t)),n&&(this.to=Kt(e,n)),r&&(this.text=r),void 0!==i&&(this.origin=i)}),jr(e,"beforeChange",e,r),e.cm&&jr(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Ft(e,t,n,r){if(e.cm){if(!e.cm.curOp)return it(e.cm,Ft)(e,t,n,r);if(e.cm.state.suppressEdits)return}if(!(zr(e,"beforeChange")||e.cm&&zr(e.cm,"beforeChange"))||(t=Pt(e,t,!0))){var i=Vi&&!r&&On(e,t.from,t.to);if(i){for(var o=i.length-1;o>=1;--o)Gt(e,{from:i[o].from,to:i[o].to,text:[""]});i.length&&Gt(e,{from:i[0].from,to:i[0].to,text:t.text},n)}else Gt(e,t,n)}}function Gt(e,t,n){var r=Ot(e,t,n);Cr(e,t,r,e.cm?e.cm.curOp.id:0/0),Rt(e,t,r,In(e,t));var i=[];cr(e,function(e,n){n||-1!=Xr(i,e.history)||(Nr(e.history,t),i.push(e.history)),Rt(e,t,null,In(e,t))})}function Ht(e,t){if(!e.cm||!e.cm.state.suppressEdits){var n=e.history,r=("undo"==t?n.done:n.undone).pop();if(r){var i={changes:[],anchorBefore:r.anchorAfter,headBefore:r.headAfter,anchorAfter:r.anchorBefore,headAfter:r.headBefore,generation:n.generation};("undo"==t?n.undone:n.done).push(i),n.generation=r.generation||++n.maxGeneration;for(var o=zr(e,"beforeChange")||e.cm&&zr(e.cm,"beforeChange"),s=r.changes.length-1;s>=0;--s){var a=r.changes[s];if(a.origin=t,o&&!Pt(e,a,!1))return("undo"==t?n.done:n.undone).length=0,void 0;i.changes.push(xr(e,a));var l=s?Ot(e,a,null):{anchor:r.anchorBefore,head:r.headBefore};Rt(e,a,l,$n(e,a));var c=[];cr(e,function(e,t){t||-1!=Xr(c,e.history)||(Nr(e.history,a),c.push(e.history)),Rt(e,a,null,$n(e,a))})}}}}function jt(e,t){function n(e){return zt(e.line+t,e.ch)}e.first+=t,e.cm&&at(e.cm,e.first,e.first,t),e.sel.head=n(e.sel.head),e.sel.anchor=n(e.sel.anchor),e.sel.from=n(e.sel.from),e.sel.to=n(e.sel.to)}function Rt(e,t,n,r){if(e.cm&&!e.cm.curOp)return it(e.cm,Rt)(e,t,n,r);if(t.to.line<e.first)return jt(e,t.text.length-1-(t.to.line-t.from.line)),void 0;if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);jt(e,i),t={from:zt(e.first,0),to:zt(t.to.line+i,t.to.ch),text:[qr(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:zt(o,dr(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=fr(e,t.from,t.to),n||(n=Ot(e,t,null)),e.cm?_t(e.cm,t,r,n):sr(e,t,r,n)}}function _t(e,t,n,r){var o=e.doc,s=e.display,a=t.from,l=t.to,c=!1,d=a.line;e.options.lineWrapping||(d=mr(Hn(o,dr(o,a.line))),o.iter(d,l.line+1,function(e){return e==s.maxLine?(c=!0,!0):void 0})),Vt(o.sel.head,t.from)||Vt(t.to,o.sel.head)||(e.curOp.cursorActivity=!0),sr(o,t,n,r,i(e)),e.options.lineWrapping||(o.iter(d,a.line+t.text.length,function(e){var t=u(o,e);t>s.maxLineLength&&(s.maxLine=e,s.maxLineLength=t,s.maxLineChanged=!0,c=!1)}),c&&(e.curOp.updateMaxLine=!0)),o.frontier=Math.min(o.frontier,a.line),M(e,400);var f=t.text.length-(l.line-a.line)-1;if(at(e,a.line,l.line+1,f),zr(e,"change")){var h={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};if(e.curOp.textChanged){for(var p=e.curOp.textChanged;p.next;p=p.next);p.next=h}else e.curOp.textChanged=h}}function Bt(e,t,n,r,i){if(r||(r=n),Vt(r,n)){var o=r;r=n,n=o}"string"==typeof t&&(t=No(t)),Ft(e,{from:n,to:r,text:t,origin:i},null)}function zt(e,t){return this instanceof zt?(this.line=e,this.ch=t,void 0):new zt(e,t)}function Wt(e,t){return e.line==t.line&&e.ch==t.ch}function Vt(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function Ut(e){return zt(e.line,e.ch)}function qt(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Kt(e,t){if(t.line<e.first)return zt(e.first,0);var n=e.first+e.size-1;return t.line>n?zt(n,dr(e,n).text.length):Xt(t,dr(e,t.line).text.length)}function Xt(e,t){var n=e.ch;return null==n||n>t?zt(e.line,t):0>n?zt(e.line,0):e}function Jt(e,t){return t>=e.first&&t<e.first+e.size}function Qt(e,t,n,r){if(e.sel.shift||e.sel.extend){var i=e.sel.anchor;if(n){var o=Vt(t,i);o!=Vt(n,i)?(i=t,t=n):o!=Vt(t,n)&&(t=n)}Zt(e,i,t,r)}else Zt(e,t,n||t,r);e.cm&&(e.cm.curOp.userSelChange=!0)}function Yt(e,t,n){var r={anchor:t,head:n};return jr(e,"beforeSelectionChange",e,r),e.cm&&jr(e.cm,"beforeSelectionChange",e.cm,r),r.anchor=Kt(e,r.anchor),r.head=Kt(e,r.head),r}function Zt(e,t,n,r,i){if(!i&&zr(e,"beforeSelectionChange")||e.cm&&zr(e.cm,"beforeSelectionChange")){var o=Yt(e,t,n);n=o.head,t=o.anchor}var s=e.sel;if(s.goalColumn=null,(i||!Wt(t,s.anchor))&&(t=tn(e,t,r,"push"!=i)),(i||!Wt(n,s.head))&&(n=tn(e,n,r,"push"!=i)),!Wt(s.anchor,t)||!Wt(s.head,n)){s.anchor=t,s.head=n;var a=Vt(n,t);s.from=a?n:t,s.to=a?t:n,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=e.cm.curOp.cursorActivity=!0),Rr(e,"cursorActivity",e)}}function en(e){Zt(e.doc,e.doc.sel.from,e.doc.sel.to,null,"push")}function tn(e,t,n,r){var i=!1,o=t,s=n||1;e.cantEdit=!1;e:for(;;){var a=dr(e,o.line);if(a.markedSpans)for(var l=0;l<a.markedSpans.length;++l){var c=a.markedSpans[l],u=c.marker;if((null==c.from||(u.inclusiveLeft?c.from<=o.ch:c.from<o.ch))&&(null==c.to||(u.inclusiveRight?c.to>=o.ch:c.to>o.ch))){if(r&&(jr(u,"beforeCursorEnter"),u.explicitlyCleared)){if(a.markedSpans){--l;continue}break}if(!u.atomic)continue;var d=u.find()[0>s?"from":"to"];if(Wt(d,o)&&(d.ch+=s,d.ch<0?d=d.line>e.first?Kt(e,zt(d.line-1)):null:d.ch>a.text.length&&(d=d.line<e.first+e.size-1?zt(d.line+1,0):null),!d)){if(i)return r?(e.cantEdit=!0,zt(e.first,0)):tn(e,t,n,!0);i=!0,d=t,s=-s}o=d;continue e}}return o}}function nn(e){var t=rn(e,e.doc.sel.head,e.options.cursorScrollMargin);if(e.state.focused){var n=e.display,r=si(n.sizer),i=null;if(t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!Oi){var o="none"==n.cursor.style.display;o&&(n.cursor.style.display="",n.cursor.style.left=t.left+"px",n.cursor.style.top=t.top-n.viewOffset+"px"),n.cursor.scrollIntoView(i),o&&(n.cursor.style.display="none")}}}function rn(e,t,n){for(null==n&&(n=0);;){var r=!1,i=J(e,t),o=sn(e,i.left,i.top-n,i.left,i.bottom+n),s=e.doc.scrollTop,a=e.doc.scrollLeft;if(null!=o.scrollTop&&(xt(e,o.scrollTop),Math.abs(e.doc.scrollTop-s)>1&&(r=!0)),null!=o.scrollLeft&&(Ct(e,o.scrollLeft),Math.abs(e.doc.scrollLeft-a)>1&&(r=!0)),!r)return i}}function on(e,t,n,r,i){var o=sn(e,t,n,r,i);null!=o.scrollTop&&xt(e,o.scrollTop),null!=o.scrollLeft&&Ct(e,o.scrollLeft)}function sn(e,t,n,r,i){var o=e.display,s=et(e.display);0>n&&(n=0);var a=o.scroller.clientHeight-wo,l=o.scroller.scrollTop,c={},u=e.doc.height+F(o),d=s>n,f=i>u-s;if(l>n)c.scrollTop=d?0:n;else if(i>l+a){var h=Math.min(n,(f?u:i)-a);h!=l&&(c.scrollTop=h)}var p=o.scroller.clientWidth-wo,m=o.scroller.scrollLeft;t+=o.gutters.offsetWidth,r+=o.gutters.offsetWidth;var g=o.gutters.offsetWidth,v=g+10>t;return m+g>t||v?(v&&(t=0),c.scrollLeft=Math.max(0,t-10-g)):r>p+m-3&&(c.scrollLeft=r+10-p),c}function an(e,t,n){e.curOp.updateScrollPos={scrollLeft:null==t?e.doc.scrollLeft:t,scrollTop:null==n?e.doc.scrollTop:n}}function ln(e,t,n){var r=e.curOp.updateScrollPos||(e.curOp.updateScrollPos={scrollLeft:e.doc.scrollLeft,scrollTop:e.doc.scrollTop}),i=e.display.scroller;r.scrollTop=Math.max(0,Math.min(i.scrollHeight-i.clientHeight,r.scrollTop+n)),r.scrollLeft=Math.max(0,Math.min(i.scrollWidth-i.clientWidth,r.scrollLeft+t))}function cn(e,t,n,r){var i=e.doc;if(null==n&&(n="add"),"smart"==n)if(e.doc.mode.indent)var o=O(e,t);else n="prev";var s,a=e.options.tabSize,l=dr(i,t),c=Vr(l.text,null,a),u=l.text.match(/^\s*/)[0];if("smart"==n&&(s=e.doc.mode.indent(o,l.text.slice(u.length),l.text),s==xo)){if(!r)return;n="prev"}"prev"==n?s=t>i.first?Vr(dr(i,t-1).text,null,a):0:"add"==n?s=c+e.options.indentUnit:"subtract"==n?s=c-e.options.indentUnit:"number"==typeof n&&(s=c+n),s=Math.max(0,s);var d="",f=0;if(e.options.indentWithTabs)for(var h=Math.floor(s/a);h;--h)f+=a,d+="	";s>f&&(d+=Ur(s-f)),d!=u&&Bt(e.doc,d,zt(t,0),zt(t,u.length),"+input"),l.stateAfter=null}function un(e,t,n){var r=t,i=t,o=e.doc;return"number"==typeof t?i=dr(o,qt(o,t)):r=mr(t),null==r?null:n(i,r)?(at(e,r,r+1),i):null}function dn(e,t,n,r,i){function o(){var t=a+n;return t<e.first||t>=e.first+e.size?d=!1:(a=t,u=dr(e,t))}function s(e){var t=(i?wi:xi)(u,l,n,!0);if(null==t){if(e||!o())return d=!1;l=i?(0>n?pi:hi)(u):0>n?u.text.length:0}else l=t;return!0}var a=t.line,l=t.ch,c=n,u=dr(e,a),d=!0;if("char"==r)s();else if("column"==r)s(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,p=!0;!(0>n)||s(!p);p=!1){var m=u.text.charAt(l)||"\n",g=ei(m)?"w":h?/\s/.test(m)?null:"p":null;if(f&&f!=g){0>n&&(n=1,s());break}if(g&&(f=g),n>0&&!s(!p))break}var v=tn(e,zt(a,l),c,!0);return d||(v.hitSide=!0),v}function fn(e,t,n,r){var i,o=e.doc,s=t.left;if("page"==r){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+n*(a-(0>n?1.5:.5)*et(e.display))}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;;){var l=Y(e,s,i);if(!l.outside)break;if(0>n?0>=i:i>=o.height){l.hitSide=!0;break}i+=5*n}return l}function hn(e,t){var n=t.ch,r=t.ch;if(e){t.xRel<0||r==e.length?--n:++r;for(var i=e.charAt(n),o=ei(i)?ei:/\s/.test(i)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!ei(e)};n>0&&o(e.charAt(n-1));)--n;for(;r<e.length&&o(e.charAt(r));)++r}return{from:zt(t.line,n),to:zt(t.line,r)}}function pn(e,t){Qt(e.doc,zt(t,0),Kt(e.doc,zt(t+1,0)))}function mn(t,n,r,i){e.defaults[t]=n,r&&(to[t]=i?function(e,t,n){n!=ro&&r(e,t,n)}:r)}function gn(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function vn(e,t,n){return e.startState?e.startState(t,n):!0}function bn(e){return"string"==typeof e?co[e]:e}function yn(e,t,n){function r(t){t=bn(t);var i=t[e];if(i===!1)return"stop";if(null!=i&&n(i))return!0;if(t.nofallthrough)return"stop";var o=t.fallthrough;if(null==o)return!1;if("[object Array]"!=Object.prototype.toString.call(o))return r(o);for(var s=0,a=o.length;a>s;++s){var l=r(o[s]);if(l)return l}return!1}for(var i=0;i<t.length;++i){var o=r(t[i]);if(o)return"stop"!=o}}function wn(e){var t=Mo[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function xn(e,t){if(Ai&&34==e.keyCode&&e["char"])return!1;var n=Mo[e.keyCode];return null==n||e.altGraphKey?!1:(e.altKey&&(n="Alt-"+n),(zi?e.metaKey:e.ctrlKey)&&(n="Ctrl-"+n),(zi?e.ctrlKey:e.metaKey)&&(n="Cmd-"+n),!t&&e.shiftKey&&(n="Shift-"+n),n)}function Cn(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0}function Sn(e,t){this.lines=[],this.type=t,this.doc=e}function kn(e,t,n,r,i){if(r&&r.shared)return Ln(e,t,n,r,i);if(e.cm&&!e.cm.curOp)return it(e.cm,kn)(e,t,n,r,i);var o=new Sn(e,i);if("range"==i&&!Vt(t,n))return o;r&&Qr(r,o),o.replacedWith&&(o.collapsed=!0,o.replacedWith=ni("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||(o.replacedWith.ignoreEvents=!0)),o.collapsed&&(Ui=!0),o.addToHistory&&Cr(e,{from:t,to:n,origin:"markText"},{head:e.sel.head,anchor:e.sel.anchor},0/0);var s,a,l,c=t.line,u=0,d=e.cm;if(e.iter(c,n.line+1,function(r){d&&o.collapsed&&!d.options.lineWrapping&&Hn(e,r)==d.display.maxLine&&(l=!0);var i={from:null,to:null,marker:o};u+=r.text.length,c==t.line&&(i.from=t.ch,u-=t.ch),c==n.line&&(i.to=n.ch,u-=r.text.length-n.ch),o.collapsed&&(c==n.line&&(a=Pn(r,n.ch)),c==t.line?s=Pn(r,t.ch):pr(r,0)),An(r,i),++c}),o.collapsed&&e.iter(t.line,n.line+1,function(t){jn(e,t)&&pr(t,0)}),o.clearOnEnter&&Gr(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(Vi=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed){if(s!=a)throw new Error("Inserting collapsed marker overlapping an existing one");o.size=u,o.atomic=!0}return d&&(l&&(d.curOp.updateMaxLine=!0),(o.className||o.startStyle||o.endStyle||o.collapsed)&&at(d,t.line,n.line+1),o.atomic&&en(d)),o}function Tn(e,t){this.markers=e,this.primary=t;for(var n=0,r=this;n<e.length;++n)e[n].parent=this,Gr(e[n],"clear",function(){r.clear()})}function Ln(e,t,n,r,i){r=Qr(r),r.shared=!1;var o=[kn(e,t,n,r,i)],s=o[0],a=r.replacedWith;return cr(e,function(e){a&&(r.replacedWith=a.cloneNode(!0)),o.push(kn(e,Kt(e,t),Kt(e,n),r,i));for(var l=0;l<e.linked.length;++l)if(e.linked[l].isParent)return;s=qr(o)}),new Tn(o,s)}function En(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function Nn(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function An(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Dn(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],s=o.marker,a=null==o.from||(s.inclusiveLeft?o.from<=t:o.from<t);if(a||"bookmark"==s.type&&o.from==t&&(!n||!o.marker.insertLeft)){var l=null==o.to||(s.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push({from:o.from,to:l?null:o.to,marker:s})}}return r}function Mn(e,t,n){if(e)for(var r,i=0;i<e.length;++i){var o=e[i],s=o.marker,a=null==o.to||(s.inclusiveRight?o.to>=t:o.to>t);if(a||"bookmark"==s.type&&o.from==t&&(!n||o.marker.insertLeft)){var l=null==o.from||(s.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push({from:l?null:o.from-t,to:null==o.to?null:o.to-t,marker:s})}}return r}function In(e,t){var n=Jt(e,t.from.line)&&dr(e,t.from.line).markedSpans,r=Jt(e,t.to.line)&&dr(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,s=Wt(t.from,t.to),a=Dn(n,i,s),l=Mn(r,o,s),c=1==t.text.length,u=qr(t.text).length+(c?i:0);if(a)for(var d=0;d<a.length;++d){var f=a[d];if(null==f.to){var h=En(l,f.marker);h?c&&(f.to=null==h.to?null:h.to+u):f.to=i}}if(l)for(var d=0;d<l.length;++d){var f=l[d];if(null!=f.to&&(f.to+=u),null==f.from){var h=En(a,f.marker);h||(f.from=u,c&&(a||(a=[])).push(f))}else f.from+=u,c&&(a||(a=[])).push(f)}if(c&&a){for(var d=0;d<a.length;++d)null!=a[d].from&&a[d].from==a[d].to&&"bookmark"!=a[d].marker.type&&a.splice(d--,1);a.length||(a=null)}var p=[a];if(!c){var m,g=t.text.length-2;if(g>0&&a)for(var d=0;d<a.length;++d)null==a[d].to&&(m||(m=[])).push({from:null,to:null,marker:a[d].marker});for(var d=0;g>d;++d)p.push(m);p.push(l)}return p}function $n(e,t){var n=kr(e,t),r=In(e,t);if(!n)return r;if(!r)return n;
for(var i=0;i<n.length;++i){var o=n[i],s=r[i];if(o&&s)e:for(var a=0;a<s.length;++a){for(var l=s[a],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else s&&(n[i]=s)}return n}function On(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=Xr(r,n)||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var s=r[o],a=s.find(),l=0;l<i.length;++l){var c=i[l];if(!Vt(c.to,a.from)&&!Vt(a.to,c.from)){var u=[l,1];(Vt(c.from,a.from)||!s.inclusiveLeft&&Wt(c.from,a.from))&&u.push({from:c.from,to:a.from}),(Vt(a.to,c.to)||!s.inclusiveRight&&Wt(c.to,a.to))&&u.push({from:a.to,to:c.to}),i.splice.apply(i,u),l+=u.length-1}}return i}function Pn(e,t){var n,r=Ui&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&(null==i.from||i.from<t)&&(null==i.to||i.to>t)&&(!n||n.width<i.marker.width)&&(n=i.marker);return n}function Fn(e){return Pn(e,-1)}function Gn(e){return Pn(e,e.text.length+1)}function Hn(e,t){for(var n;n=Fn(t);)t=dr(e,n.find().from.line);return t}function jn(e,t){var n=Ui&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.replacedWith&&0==r.from&&r.marker.inclusiveLeft&&Rn(e,t,r))return!0}}function Rn(e,t,n){if(null==n.to){var r=n.marker.find().to,i=dr(e,r.line);return Rn(e,i,En(i.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var o,s=0;s<t.markedSpans.length;++s)if(o=t.markedSpans[s],o.marker.collapsed&&!o.marker.replacedWith&&o.from==n.to&&(o.marker.inclusiveLeft||n.marker.inclusiveRight)&&Rn(e,t,o))return!0}function _n(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function Bn(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function zn(e){return function(){var t=!this.cm.curOp;t&&nt(this.cm);try{var n=e.apply(this,arguments)}finally{t&&rt(this.cm)}return n}}function Wn(e){return null!=e.height?e.height:(e.node.parentNode&&1==e.node.parentNode.nodeType||ii(e.cm.display.measure,ni("div",[e.node],null,"position: relative")),e.height=e.node.offsetHeight)}function Vn(e,t,n,r){var i=new uo(e,n,r);return i.noHScroll&&(e.display.alignWidgets=!0),un(e,t,function(t){if((t.widgets||(t.widgets=[])).push(i),i.line=t,!jn(e.doc,t)||i.showIfHidden){var n=vr(e,t)<e.display.scroller.scrollTop;pr(t,t.height+Wn(i)),n&&ln(e,0,i.height)}return!0}),i}function Un(e,t,n){var r={text:e};return Bn(r,t),r.height=n?n(r):1,r}function qn(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),_n(e),Bn(e,n);var i=r?r(e):1;i!=e.height&&pr(e,i)}function Kn(e){e.parent=null,_n(e)}function Xn(e,t,n,r,i){var o=n.flattenSpans;null==o&&(o=e.options.flattenSpans);var s,a=0,l=null,c=new Cn(t,e.options.tabSize);for(""==t&&n.blankLine&&n.blankLine(r);!c.eol();)c.pos>e.options.maxHighlightLength?(o=!1,c.pos=Math.min(t.length,c.start+5e4),s=null):s=n.token(c,r),o&&l==s||(a<c.start&&i(c.start,l),a=c.start,l=s),c.start=c.pos;a<c.pos&&i(c.pos,l)}function Jn(e,t,n){var r=[e.state.modeGen];Xn(e,t.text,e.doc.mode,n,function(e,t){r.push(e,t)});for(var i=0;i<e.state.overlays.length;++i){var o=e.state.overlays[i],s=1,a=0;Xn(e,t.text,o.mode,!0,function(e,t){for(var n=s;e>a;){var i=r[s];i>e&&r.splice(s,1,e,r[s+1],i),s+=2,a=Math.min(e,i)}if(t)if(o.opaque)r.splice(n,s-n,e,t),s=n+2;else for(;s>n;n+=2){var l=r[n+1];r[n+1]=l?l+" "+t:t}})}return r}function Qn(e,t){return t.styles&&t.styles[0]==e.state.modeGen||(t.styles=Jn(e,t,t.stateAfter=O(e,mr(t)))),t.styles}function Yn(e,t,n){var r=e.doc.mode,i=new Cn(t.text,e.options.tabSize);for(""==t.text&&r.blankLine&&r.blankLine(n);!i.eol()&&i.pos<=e.options.maxHighlightLength;)r.token(i,n),i.start=i.pos}function Zn(e){return e?fo[e]||(fo[e]="cm-"+e.replace(/ +/g," cm-")):null}function er(e,t,n){for(var r,i=t,o=!0;r=Fn(i);)i=dr(e.doc,r.find().from.line);var s={pre:ni("pre"),col:0,pos:0,display:!n,measure:null,measuredSomething:!1,cm:e};i.textClass&&(s.pre.className=i.textClass);do{i.text&&(o=!1),s.measure=i==t&&n,s.pos=0,s.addToken=s.measure?nr:tr,(Si||Li)&&e.getOption("lineWrapping")&&(s.addToken=rr(s.addToken));var a=or(i,s,Qn(e,i));n&&i==t&&!s.measuredSomething&&(n[0]=s.pre.appendChild(ci(e.display.measure)),s.measuredSomething=!0),a&&(i=dr(e.doc,a.to.line))}while(a);!n||s.measuredSomething||n[0]||(n[0]=s.pre.appendChild(o?ni("span","\xa0"):ci(e.display.measure))),s.pre.firstChild||jn(e.doc,t)||s.pre.appendChild(document.createTextNode("\xa0"));var l;if(n&&Si&&(l=br(i))){var c=l.length-1;l[c].from==l[c].to&&--c;var u=l[c],d=l[c-1];if(u.from+1==u.to&&d&&u.level<d.level){var f=n[s.pos-1];f&&f.parentNode.insertBefore(f.measureRight=ci(e.display.measure),f.nextSibling)}}return jr(e,"renderLine",e,t,s.pre),s.pre}function tr(e,t,n,r,i){if(t){if(ho.test(t))for(var o=document.createDocumentFragment(),s=0;;){ho.lastIndex=s;var a=ho.exec(t),l=a?a.index-s:t.length-s;if(l&&(o.appendChild(document.createTextNode(t.slice(s,s+l))),e.col+=l),!a)break;if(s+=l+1,"	"==a[0]){var c=e.cm.options.tabSize,u=c-e.col%c;o.appendChild(ni("span",Ur(u),"cm-tab")),e.col+=u}else{var d=ni("span","\u2022","cm-invalidchar");d.title="\\u"+a[0].charCodeAt(0).toString(16),o.appendChild(d),e.col+=1}}else{e.col+=t.length;var o=document.createTextNode(t)}if(n||r||i||e.measure){var f=n||"";return r&&(f+=r),i&&(f+=i),e.pre.appendChild(ni("span",[o],f))}e.pre.appendChild(o)}}function nr(e,t,n,r,i){for(var o=e.cm.options.lineWrapping,s=0;s<t.length;++s){var a=t.charAt(s),l=0==s;a>="\ud800"&&"\udbff">a&&s<t.length-1?(a=t.slice(s,s+2),++s):s&&o&&ai(t,s)&&e.pre.appendChild(ni("wbr"));var c=e.measure[e.pos]=tr(e,a,n,l&&r,s==t.length-1&&i);Si&&o&&" "==a&&s&&!/\s/.test(t.charAt(s-1))&&s<t.length-1&&!/\s/.test(t.charAt(s+1))&&(c.style.whiteSpace="normal"),e.pos+=a.length}t.length&&(e.measuredSomething=!0)}function rr(e){function t(e){for(var t=" ",n=0;n<e.length-2;++n)t+=n%2?" ":"\xa0";return t+=" "}return function(n,r,i,o,s){return e(n,r.replace(/ {3,}/,t),i,o,s)}}function ir(e,t,n){n&&(e.display||(n=n.cloneNode(!0)),e.measure&&(e.measure[e.pos]=t?n:e.pre.appendChild(ci(e.cm.display.measure)),e.measuredSomething=!0),e.pre.appendChild(n)),e.pos+=t}function or(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var s,a,l,c,u,d=i.length,f=0,h=1,p="",m=0;;){if(m==f){a=l=c="",u=null,m=1/0;for(var g=null,v=0;v<r.length;++v){var b=r[v],y=b.marker;b.from<=f&&(null==b.to||b.to>f)?(null!=b.to&&m>b.to&&(m=b.to,l=""),y.className&&(a+=" "+y.className),y.startStyle&&b.from==f&&(c+=" "+y.startStyle),y.endStyle&&b.to==m&&(l+=" "+y.endStyle),y.collapsed&&(!u||u.marker.size<y.size)&&(u=b)):b.from>f&&m>b.from&&(m=b.from),"bookmark"==y.type&&b.from==f&&y.replacedWith&&(g=y.replacedWith)}if(u&&(u.from||0)==f&&(ir(t,(null==u.to?d:u.to)-f,null!=u.from&&u.marker.replacedWith),null==u.to))return u.marker.find();g&&!u&&ir(t,0,g)}if(f>=d)break;for(var w=Math.min(d,m);;){if(p){var x=f+p.length;if(!u){var C=x>w?p.slice(0,w-f):p;t.addToken(t,C,s?s+a:a,c,f+C.length==m?l:"")}if(x>=w){p=p.slice(w-f),f=w;break}f=x,c=""}p=i.slice(o,o=n[h++]),s=Zn(n[h++])}}else for(var h=1;h<n.length;h+=2)t.addToken(t,i.slice(o,o=n[h]),Zn(n[h+1]))}function sr(e,t,n,r,i){function o(e){return n?n[e]:null}function s(e,n,r){qn(e,n,r,i),Rr(e,"change",e,t)}var a=t.from,l=t.to,c=t.text,u=dr(e,a.line),d=dr(e,l.line),f=qr(c),h=o(c.length-1),p=l.line-a.line;if(0==a.ch&&0==l.ch&&""==f){for(var m=0,g=c.length-1,v=[];g>m;++m)v.push(Un(c[m],o(m),i));s(d,d.text,h),p&&e.remove(a.line,p),v.length&&e.insert(a.line,v)}else if(u==d)if(1==c.length)s(u,u.text.slice(0,a.ch)+f+u.text.slice(l.ch),h);else{for(var v=[],m=1,g=c.length-1;g>m;++m)v.push(Un(c[m],o(m),i));v.push(Un(f+u.text.slice(l.ch),h,i)),s(u,u.text.slice(0,a.ch)+c[0],o(0)),e.insert(a.line+1,v)}else if(1==c.length)s(u,u.text.slice(0,a.ch)+c[0]+d.text.slice(l.ch),o(0)),e.remove(a.line+1,p);else{s(u,u.text.slice(0,a.ch)+c[0],o(0)),s(d,f+d.text.slice(l.ch),h);for(var m=1,g=c.length-1,v=[];g>m;++m)v.push(Un(c[m],o(m),i));p>1&&e.remove(a.line+1,p-1),e.insert(a.line+1,v)}Rr(e,"change",e,t),Zt(e,r.anchor,r.head,null,!0)}function ar(e){this.lines=e,this.parent=null;for(var t=0,n=e.length,r=0;n>t;++t)e[t].parent=this,r+=e[t].height;this.height=r}function lr(e){this.children=e;for(var t=0,n=0,r=0,i=e.length;i>r;++r){var o=e[r];t+=o.chunkSize(),n+=o.height,o.parent=this}this.size=t,this.height=n,this.parent=null}function cr(e,t,n){function r(e,i,o){if(e.linked)for(var s=0;s<e.linked.length;++s){var a=e.linked[s];if(a.doc!=i){var l=o&&a.sharedHist;(!n||l)&&(t(a.doc,l),r(a.doc,e,l))}}}r(e,null,!0)}function ur(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,o(e),n(e),e.options.lineWrapping||d(e),e.options.mode=t.modeOption,at(e)}function dr(e,t){for(t-=e.first;!e.lines;)for(var n=0;;++n){var r=e.children[n],i=r.chunkSize();if(i>t){e=r;break}t-=i}return e.lines[t]}function fr(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function hr(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function pr(e,t){for(var n=t-e.height,r=e;r;r=r.parent)r.height+=n}function mr(e){if(null==e.parent)return null;for(var t=e.parent,n=Xr(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function gr(e,t){var n=e.first;e:do{for(var r=0,i=e.children.length;i>r;++r){var o=e.children[r],s=o.height;if(s>t){e=o;continue e}t-=s,n+=o.chunkSize()}return n}while(!e.lines);for(var r=0,i=e.lines.length;i>r;++r){var a=e.lines[r],l=a.height;if(l>t)break;t-=l}return n+r}function vr(e,t){t=Hn(e.doc,t);for(var n=0,r=t.parent,i=0;i<r.lines.length;++i){var o=r.lines[i];if(o==t)break;n+=o.height}for(var s=r.parent;s;r=s,s=r.parent)for(var i=0;i<s.children.length;++i){var a=s.children[i];if(a==r)break;n+=a.height}return n}function br(e){var t=e.order;return null==t&&(t=e.order=$o(e.text)),t}function yr(e){return{done:[],undone:[],undoDepth:1/0,lastTime:0,lastOp:null,lastOrigin:null,generation:e||1,maxGeneration:e||1}}function wr(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function xr(e,t){var n={from:t.from,to:eo(t),text:fr(e,t.from,t.to)};return wr(e,n,t.from.line,t.to.line+1),cr(e,function(e){wr(e,n,t.from.line,t.to.line+1)},!0),n}function Cr(e,t,n,r){var i=e.history;i.undone.length=0;var o=+new Date,s=qr(i.done);if(s&&(i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastTime>o-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))){var a=qr(s.changes);Wt(t.from,t.to)&&Wt(t.from,a.to)?a.to=eo(t):s.changes.push(xr(e,t)),s.anchorAfter=n.anchor,s.headAfter=n.head}else for(s={changes:[xr(e,t)],generation:i.generation,anchorBefore:e.sel.anchor,headBefore:e.sel.head,anchorAfter:n.anchor,headAfter:n.head},i.done.push(s),i.generation=++i.maxGeneration;i.done.length>i.undoDepth;)i.done.shift();i.lastTime=o,i.lastOp=r,i.lastOrigin=t.origin}function Sr(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function kr(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=0,i=[];r<t.text.length;++r)i.push(Sr(n[r]));return i}function Tr(e,t){for(var n=0,r=[];n<e.length;++n){var i=e[n],o=i.changes,s=[];r.push({changes:s,anchorBefore:i.anchorBefore,headBefore:i.headBefore,anchorAfter:i.anchorAfter,headAfter:i.headAfter});for(var a=0;a<o.length;++a){var l,c=o[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var u in c)(l=u.match(/^spans_(\d+)$/))&&Xr(t,Number(l[1]))>-1&&(qr(s)[u]=c[u],delete c[u])}}return r}function Lr(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function Er(e,t,n,r){for(var i=0;i<e.length;++i){for(var o=e[i],s=!0,a=0;a<o.changes.length;++a){var l=o.changes[a];if(o.copied||(l.from=Ut(l.from),l.to=Ut(l.to)),n<l.from.line)l.from.line+=r,l.to.line+=r;else if(t<=l.to.line){s=!1;break}}o.copied||(o.anchorBefore=Ut(o.anchorBefore),o.headBefore=Ut(o.headBefore),o.anchorAfter=Ut(o.anchorAfter),o.readAfter=Ut(o.headAfter),o.copied=!0),s?(Lr(o.anchorBefore),Lr(o.headBefore),Lr(o.anchorAfter),Lr(o.headAfter)):(e.splice(0,i+1),i=0)}}function Nr(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;Er(e.done,n,r,i),Er(e.undone,n,r,i)}function Ar(){Or(this)}function Dr(e){return e.stop||(e.stop=Ar),e}function Mr(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ir(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function $r(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Or(e){Mr(e),Ir(e)}function Pr(e){return e.target||e.srcElement}function Fr(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Gi&&e.ctrlKey&&1==t&&(t=3),t}function Gr(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={}),i=r[t]||(r[t]=[]);i.push(n)}}function Hr(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers&&e._handlers[t];if(!r)return;for(var i=0;i<r.length;++i)if(r[i]==n){r.splice(i,1);break}}}function jr(e,t){var n=e._handlers&&e._handlers[t];if(n)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Rr(e,t){function n(e){return function(){e.apply(null,i)}}var r=e._handlers&&e._handlers[t];if(r){var i=Array.prototype.slice.call(arguments,2);bo||(++yo,bo=[],setTimeout(Br,0));for(var o=0;o<r.length;++o)bo.push(n(r[o]))}}function _r(e,t){return jr(e,t.type,e,t),$r(t)}function Br(){--yo;var e=bo;bo=null;for(var t=0;t<e.length;++t)e[t]()}function zr(e,t){var n=e._handlers&&e._handlers[t];return n&&n.length>0}function Wr(){this.id=null}function Vr(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/),-1==t&&(t=e.length));for(var o=r||0,s=i||0;t>o;++o)"	"==e.charAt(o)?s+=n-s%n:++s;return s}function Ur(e){for(;Co.length<=e;)Co.push(qr(Co)+" ");return Co[e]}function qr(e){return e[e.length-1]}function Kr(e){if(Pi)e.selectionStart=0,e.selectionEnd=e.value.length;else try{e.select()}catch(t){}}function Xr(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;r>n;++n)if(e[n]==t)return n;return-1}function Jr(e,t){function n(){}n.prototype=e;var r=new n;return t&&Qr(t,r),r}function Qr(e,t){t||(t={});for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function Yr(e){for(var t=[],n=0;e>n;++n)t.push(void 0);return t}function Zr(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function ei(e){return/\w/.test(e)||e>"\x80"&&(e.toUpperCase()!=e.toLowerCase()||So.test(e))}function ti(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function ni(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)oi(i,t);else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function ri(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function ii(e,t){return ri(e).appendChild(t)}function oi(e,t){Ti?(e.innerHTML="",e.appendChild(document.createTextNode(t))):e.textContent=t}function si(e){return e.getBoundingClientRect()}function ai(){return!1}function li(e){if(null!=Lo)return Lo;var t=ni("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");return ii(e,t),t.offsetWidth&&(Lo=t.offsetHeight-t.clientHeight),Lo||0}function ci(e){if(null==Eo){var t=ni("span","\u200b");ii(e,ni("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Eo=t.offsetWidth<=1&&t.offsetHeight>2&&!ki)}return Eo?ni("span","\u200b"):ni("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px")}function ui(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=0;i<e.length;++i){var o=e[i];(o.from<n&&o.to>t||t==n&&o.to==t)&&r(Math.max(o.from,t),Math.min(o.to,n),1==o.level?"rtl":"ltr")}}function di(e){return e.level%2?e.to:e.from}function fi(e){return e.level%2?e.from:e.to}function hi(e){var t=br(e);return t?di(t[0]):0}function pi(e){var t=br(e);return t?fi(qr(t)):e.text.length}function mi(e,t){var n=dr(e.doc,t),r=Hn(e.doc,n);r!=n&&(t=mr(r));var i=br(r),o=i?i[0].level%2?pi(r):hi(r):0;return zt(t,o)}function gi(e,t){for(var n,r;n=Gn(r=dr(e.doc,t));)t=n.find().to.line;var i=br(r),o=i?i[0].level%2?hi(r):pi(r):r.text.length;return zt(t,o)}function vi(e,t,n){var r=e[0].level;return t==r?!0:n==r?!1:n>t}function bi(e,t){for(var n,r=0;r<e.length;++r){var i=e[r];if(i.from<t&&i.to>t)return Io=null,r;if(i.from==t||i.to==t){if(null!=n)return vi(e,i.level,e[n].level)?(Io=n,r):(Io=r,n);n=r}}return Io=null,n}function yi(e,t,n,r){if(!r)return t+n;do t+=n;while(t>0&&ko.test(e.text.charAt(t)));return t}function wi(e,t,n,r){var i=br(e);if(!i)return xi(e,t,n,r);for(var o=bi(i,t),s=i[o],a=yi(e,t,s.level%2?-n:n,r);;){if(a>s.from&&a<s.to)return a;if(a==s.from||a==s.to)return bi(i,a)==o?a:(s=i[o+=n],n>0==s.level%2?s.to:s.from);if(s=i[o+=n],!s)return null;a=n>0==s.level%2?yi(e,s.to,-1,r):yi(e,s.from,1,r)}}function xi(e,t,n,r){var i=t+n;if(r)for(;i>0&&ko.test(e.text.charAt(i));)i+=n;return 0>i||i>e.text.length?null:i}var Ci=/gecko\/\d/i.test(navigator.userAgent),Si=/MSIE \d/.test(navigator.userAgent),ki=Si&&(null==document.documentMode||document.documentMode<8),Ti=Si&&(null==document.documentMode||document.documentMode<9),Li=/WebKit\//.test(navigator.userAgent),Ei=Li&&/Qt\/\d+\.\d+/.test(navigator.userAgent),Ni=/Chrome\//.test(navigator.userAgent),Ai=/Opera\//.test(navigator.userAgent),Di=/Apple Computer/.test(navigator.vendor),Mi=/KHTML\//.test(navigator.userAgent),Ii=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),$i=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),Oi=/PhantomJS/.test(navigator.userAgent),Pi=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),Fi=Pi||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),Gi=Pi||/Mac/.test(navigator.platform),Hi=/windows/i.test(navigator.platform),ji=Ai&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);ji&&(ji=Number(ji[1]));var Ri,_i,Bi,zi=Gi&&(Ei||Ai&&(null==ji||12.11>ji)),Wi=Ci||Si&&!Ti,Vi=!1,Ui=!1,qi=0,Ki=0,Xi=0,Ji=null;Si?Ji=-.53:Ci?Ji=15:Ni?Ji=-.7:Di&&(Ji=-1/3);var Qi,Yi,Zi=null,eo=e.changeEnd=function(e){return e.text?zt(e.from.line+e.text.length-1,qr(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.Pos=zt,e.prototype={constructor:e,focus:function(){window.focus(),ft(this),Dt(this),ct(this)},setOption:function(e,t){var n=this.options,r=n[e];(n[e]!=t||"mode"==e)&&(n[e]=t,to.hasOwnProperty(e)&&it(this,to[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](e)},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(("string"==typeof e?t[n].name:t[n])==e)return t.splice(n,1),!0},addOverlay:it(null,function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:n&&n.opaque}),this.state.modeGen++,at(this)}),removeOverlay:it(null,function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||"string"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,at(this),void 0}}),indentLine:it(null,function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),Jt(this.doc,e)&&cn(this,e,t,n)}),indentSelection:it(null,function(e){var t=this.doc.sel;if(Wt(t.from,t.to))return cn(this,t.from.line,e);for(var n=t.to.line-(t.to.ch?0:1),r=t.from.line;n>=r;++r)cn(this,r,e)}),getTokenAt:function(e,t){var n=this.doc;e=Kt(n,e);for(var r=O(this,e.line,t),i=this.doc.mode,o=dr(n,e.line),s=new Cn(o.text,this.options.tabSize);s.pos<e.ch&&!s.eol();){s.start=s.pos;var a=i.token(s,r)}return{start:s.start,end:s.pos,string:s.current(),className:a||null,type:a||null,state:r}},getTokenTypeAt:function(e){e=Kt(this.doc,e);for(var t=Qn(this,dr(this.doc,e.line)),n=0,r=(t.length-1)/2,i=e.ch;;){var o=n+r>>1;if((o?t[2*o-1]:0)>=i)r=o;else{if(!(t[2*o+1]<i))return t[2*o+2];n=o+1}}},getStateAfter:function(e,t){var n=this.doc;return e=qt(n,null==e?n.first+n.size-1:e),O(this,e+1,t)},cursorCoords:function(e,t){var n,r=this.doc.sel;return n=null==e?r.head:"object"==typeof e?Kt(this.doc,e):e?r.from:r.to,J(this,n,t||"page")},charCoords:function(e,t){return X(this,Kt(this.doc,e),t||"page")},coordsChar:function(e,t){return e=K(this,e,t||"page"),Y(this,e.left,e.top)},lineAtHeight:function(e,t){return e=K(this,{top:e,left:0},t||"page").top,gr(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t){var n=!1,r=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>r&&(e=r,n=!0);var i=dr(this.doc,e);return q(this,dr(this.doc,e),{top:0,left:0},t||"page").top+(n?i.height:0)},defaultTextHeight:function(){return et(this.display)},defaultCharWidth:function(){return tt(this.display)},setGutterMarker:it(null,function(e,t,n){return un(this,e,function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&ti(r)&&(e.gutterMarkers=null),!0})}),clearGutter:it(null,function(e){var t=this,n=t.doc,r=n.first;n.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&(n.gutterMarkers[e]=null,at(t,r,r+1),ti(n.gutterMarkers)&&(n.gutterMarkers=null)),++r})}),addLineClass:it(null,function(e,t,n){return un(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass";if(e[r]){if(new RegExp("(?:^|\\s)"+n+"(?:$|\\s)").test(e[r]))return!1;e[r]+=" "+n}else e[r]=n;return!0})}),removeLineClass:it(null,function(e,t,n){return un(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.match(new RegExp("(?:^|\\s+)"+n+"(?:$|\\s+)"));if(!o)return!1;var s=o.index+o[0].length;e[r]=i.slice(0,o.index)+(o.index&&s!=i.length?" ":"")+i.slice(s)||null}return!0})}),addLineWidget:it(null,function(e,t,n){return Vn(this,e,t,n)}),removeLineWidget:function(e){e.clear()},lineInfo:function(e){if("number"==typeof e){if(!Jt(this.doc,e))return null;var t=e;if(e=dr(this.doc,e),!e)return null}else{var t=mr(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.showingFrom,to:this.display.showingTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=J(this,Kt(this.doc,e));var s=e.bottom,a=e.left;if(t.style.position="absolute",o.sizer.appendChild(t),"over"==r)s=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?s=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(s=e.bottom),a+t.offsetWidth>c&&(a=c-t.offsetWidth)}t.style.top=s+"px",t.style.left=t.style.right="","right"==i?(a=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=a+"px"),n&&on(this,a,s,a+t.offsetWidth,s+t.offsetHeight)},triggerOnKeyDown:it(null,Nt),execCommand:function(e){return lo[e](this)},findPosH:function(e,t,n,r){var i=1;0>t&&(i=-1,t=-t);for(var o=0,s=Kt(this.doc,e);t>o&&(s=dn(this.doc,s,i,n,r),!s.hitSide);++o);return s},moveH:it(null,function(e,t){var n,r=this.doc.sel;n=r.shift||r.extend||Wt(r.from,r.to)?dn(this.doc,r.head,e,t,this.options.rtlMoveVisually):0>e?r.from:r.to,Qt(this.doc,n,n,e)}),deleteH:it(null,function(e,t){var n=this.doc.sel;Wt(n.from,n.to)?Bt(this.doc,"",n.from,dn(this.doc,n.head,e,t,!1),"+delete"):Bt(this.doc,"",n.from,n.to,"+delete"),this.curOp.userSelChange=!0}),findPosV:function(e,t,n,r){var i=1,o=r;0>t&&(i=-1,t=-t);for(var s=0,a=Kt(this.doc,e);t>s;++s){var l=J(this,a,"div");if(null==o?o=l.left:l.left=o,a=fn(this,l,i,n),a.hitSide)break}return a},moveV:it(null,function(e,t){var n=this.doc.sel,r=J(this,n.head,"div");null!=n.goalColumn&&(r.left=n.goalColumn);var i=fn(this,r,e,t);"page"==t&&ln(this,0,X(this,i,"div").top-r.top),Qt(this.doc,i,i,e),n.goalColumn=r.left}),toggleOverwrite:function(e){(null==e||e!=this.state.overwrite)&&((this.state.overwrite=!this.state.overwrite)?this.display.cursor.className+=" CodeMirror-overwrite":this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite",""))},hasFocus:function(){return this.state.focused},scrollTo:it(null,function(e,t){an(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller,t=wo;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-t,width:e.scrollWidth-t,clientHeight:e.clientHeight-t,clientWidth:e.clientWidth-t}},scrollIntoView:it(null,function(e,t){"number"==typeof e&&(e=zt(e,0)),t||(t=0);var n=e;e&&null==e.line||(this.curOp.scrollToPos=e?Kt(this.doc,e):this.doc.sel.head,this.curOp.scrollToPosMargin=t,n=J(this,this.curOp.scrollToPos));var r=sn(this,n.left,n.top-t,n.right,n.bottom+t);an(this,r.scrollLeft,r.scrollTop)}),setSize:function(e,t){function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.refresh()},on:function(e,t){Gr(this,e,t)},off:function(e,t){Hr(this,e,t)},operation:function(e){return st(this,e)},refresh:it(null,function(){W(this),an(this,this.doc.scrollLeft,this.doc.scrollTop),at(this)}),swapDoc:it(null,function(e){var t=this.doc;return t.cm=null,ur(this,e),W(this),dt(this,!0),an(this,e.scrollLeft,e.scrollTop),t}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};var to=e.optionHandlers={},no=e.defaults={},ro=e.Init={toString:function(){return"CodeMirror.Init"}};mn("value","",function(e,t){e.setValue(t)},!0),mn("mode",null,function(e,t){e.doc.modeOption=t,n(e)},!0),mn("indentUnit",2,n,!0),mn("indentWithTabs",!1),mn("smartIndent",!0),mn("tabSize",4,function(e){n(e),W(e),at(e)},!0),mn("electricChars",!0),mn("rtlMoveVisually",!Hi),mn("theme","default",function(e){a(e),l(e)},!0),mn("keyMap","default",s),mn("extraKeys",null),mn("onKeyEvent",null),mn("onDragEvent",null),mn("lineWrapping",!1,r,!0),mn("gutters",[],function(e){f(e.options),l(e)},!0),mn("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?b(e.display)+"px":"0",e.refresh()},!0),mn("coverGutterNextToScrollbar",!1,h,!0),mn("lineNumbers",!1,function(e){f(e.options),l(e)},!0),mn("firstLineNumber",1,l,!0),mn("lineNumberFormatter",function(e){return e},l,!0),mn("showCursorWhenSelecting",!1,E,!0),mn("readOnly",!1,function(e,t){"nocursor"==t?(Mt(e),e.display.input.blur()):t||dt(e,!0)}),mn("dragDrop",!0),mn("cursorBlinkRate",530),mn("cursorScrollMargin",0),mn("cursorHeight",1),mn("workTime",100),mn("workDelay",100),mn("flattenSpans",!0),mn("pollInterval",100),mn("undoDepth",40,function(e,t){e.doc.history.undoDepth=t}),mn("historyEventDelay",500),mn("viewportMargin",10,function(e){e.refresh()},!0),mn("maxHighlightLength",1e4,function(e){n(e),e.refresh()},!0),mn("moveInputWithCursor",!0,function(e,t){t||(e.display.inputDiv.style.top=e.display.inputDiv.style.left=0)}),mn("tabindex",null,function(e,t){e.display.input.tabIndex=t||""}),mn("autofocus",null);var io=e.modes={},oo=e.mimeModes={};e.defineMode=function(t,n){if(e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2){n.dependencies=[];for(var r=2;r<arguments.length;++r)n.dependencies.push(arguments[r])}io[t]=n},e.defineMIME=function(e,t){oo[e]=t},e.resolveMode=function(t){if("string"==typeof t&&oo.hasOwnProperty(t))t=oo[t];else if(t&&"string"==typeof t.name&&oo.hasOwnProperty(t.name)){var n=oo[t.name];t=Jr(n,t),t.name=n.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,n){n=e.resolveMode(n);var r=io[n.name];if(!r)return e.getMode(t,"text/plain");var i=r(t,n);if(so.hasOwnProperty(n.name)){var o=so[n.name];for(var s in o)o.hasOwnProperty(s)&&(i.hasOwnProperty(s)&&(i["_"+s]=i[s]),i[s]=o[s])}return i.name=n.name,i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var so=e.modeExtensions={};e.extendMode=function(e,t){var n=so.hasOwnProperty(e)?so[e]:so[e]={};Qr(t,n)},e.defineExtension=function(t,n){e.prototype[t]=n},e.defineDocExtension=function(e,t){mo.prototype[e]=t},e.defineOption=mn;var ao=[];e.defineInitHook=function(e){ao.push(e)},e.copyState=gn,e.startState=vn,e.innerMode=function(e,t){for(;e.innerMode;){var n=e.innerMode(t);t=n.state,e=n.mode}return n||{mode:e,state:t}};var lo=e.commands={selectAll:function(e){e.setSelection(zt(e.firstLine(),0),zt(e.lastLine()))},killLine:function(e){var t=e.getCursor(!0),n=e.getCursor(!1),r=!Wt(t,n);r||e.getLine(t.line).length!=t.ch?e.replaceRange("",t,r?n:zt(t.line),"+delete"):e.replaceRange("",t,zt(t.line+1,0),"+delete")},deleteLine:function(e){var t=e.getCursor().line;e.replaceRange("",zt(t,0),zt(t),"+delete")},delLineLeft:function(e){var t=e.getCursor();e.replaceRange("",zt(t.line,0),t,"+delete")},undo:function(e){e.undo()},redo:function(e){e.redo()},goDocStart:function(e){e.extendSelection(zt(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(zt(e.lastLine()))},goLineStart:function(e){e.extendSelection(mi(e,e.getCursor().line))},goLineStartSmart:function(e){var t=e.getCursor(),n=mi(e,t.line),r=e.getLineHandle(n.line),i=br(r);if(i&&0!=i[0].level)e.extendSelection(n);else{var o=Math.max(0,r.text.search(/\S/)),s=t.line==n.line&&t.ch<=o&&t.ch;e.extendSelection(zt(n.line,s?0:o))}},goLineEnd:function(e){e.extendSelection(gi(e,e.getCursor().line))},goLineRight:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:t},"div"))},goLineLeft:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:0,top:t},"div"))},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection("	","end","+input")},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.replaceSelection("	","end","+input")},transposeChars:function(e){var t=e.getCursor(),n=e.getLine(t.line);t.ch>0&&t.ch<n.length-1&&e.replaceRange(n.charAt(t.ch)+n.charAt(t.ch-1),zt(t.line,t.ch-1),zt(t.line,t.ch+1))},newlineAndIndent:function(e){it(e,function(){e.replaceSelection("\n","end","+input"),e.indentLine(e.getCursor().line,null,!0)})()},toggleOverwrite:function(e){e.toggleOverwrite()}},co=e.keyMap={};co.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite"},co.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore",fallthrough:"basic"},co.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delLineLeft",fallthrough:["basic","emacsy"]},co["default"]=Gi?co.macDefault:co.pcDefault,co.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},e.lookupKey=yn,e.isModifierKey=wn,e.keyName=xn,e.fromTextArea=function(t,n){function r(){t.value=c.getValue()
}if(n||(n={}),n.value=t.value,!n.tabindex&&t.tabindex&&(n.tabindex=t.tabindex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus){var i=document.body;try{i=document.activeElement}catch(o){}n.autofocus=i==t||null!=t.getAttribute("autofocus")&&i==document.body}if(t.form&&(Gr(t.form,"submit",r),!n.leaveSubmitMethodAlone)){var s=t.form,a=s.submit;try{var l=s.submit=function(){r(),s.submit=a,s.submit(),s.submit=l}}catch(o){}}t.style.display="none";var c=e(function(e){t.parentNode.insertBefore(e,t.nextSibling)},n);return c.save=r,c.getTextArea=function(){return t},c.toTextArea=function(){r(),t.parentNode.removeChild(c.getWrapperElement()),t.style.display="",t.form&&(Hr(t.form,"submit",r),"function"==typeof t.form.submit&&(t.form.submit=a))},c},Cn.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else var n=t&&(e.test?e.test(t):e(t));return n?(++this.pos,t):void 0},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Vr(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue},indentation:function(){return Vr(this.string,null,this.tabSize)},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);return i(o)==i(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)}},e.StringStream=Cn,e.TextMarker=Sn,Sn.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;t&&nt(e);for(var n=null,r=null,i=0;i<this.lines.length;++i){var o=this.lines[i],s=En(o.markedSpans,this);null!=s.to&&(r=mr(o)),o.markedSpans=Nn(o.markedSpans,s),null!=s.from?n=mr(o):this.collapsed&&!jn(this.doc,o)&&e&&pr(o,et(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var i=0;i<this.lines.length;++i){var a=Hn(e.doc,this.lines[i]),l=u(e.doc,a);l>e.display.maxLineLength&&(e.display.maxLine=a,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=n&&e&&at(e,n,r+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&en(e)),t&&rt(e),Rr(this,"clear")}},Sn.prototype.find=function(){for(var e,t,n=0;n<this.lines.length;++n){var r=this.lines[n],i=En(r.markedSpans,this);if(null!=i.from||null!=i.to){var o=mr(r);null!=i.from&&(e=zt(o,i.from)),null!=i.to&&(t=zt(o,i.to))}}return"bookmark"==this.type?e:e&&{from:e,to:t}},Sn.prototype.changed=function(){var e=this.find(),t=this.doc.cm;if(e&&t){var n=dr(this.doc,e.from.line);if(R(t,n),e.from.line>=t.display.showingFrom&&e.from.line<t.display.showingTo){for(var r=t.display.lineDiv.firstChild;r;r=r.nextSibling)if(r.lineObj==n){r.offsetHeight!=n.height&&pr(n,r.offsetHeight);break}st(t,function(){t.curOp.selectionChanged=!0})}}},Sn.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=Xr(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},Sn.prototype.detachLine=function(e){if(this.lines.splice(Xr(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},e.SharedTextMarker=Tn,Tn.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Rr(this,"clear")}},Tn.prototype.find=function(){return this.primary.find()};var uo=e.LineWidget=function(e,t,n){for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.cm=e,this.node=t};uo.prototype.clear=zn(function(){var e=this.line.widgets,t=mr(this.line);if(null!=t&&e){for(var n=0;n<e.length;++n)e[n]==this&&e.splice(n--,1);e.length||(this.line.widgets=null),pr(this.line,Math.max(0,this.line.height-Wn(this))),at(this.cm,t,t+1)}}),uo.prototype.changed=zn(function(){var e=this.height;this.height=null;var t=Wn(this)-e;if(t){pr(this.line,this.line.height+t);var n=mr(this.line);at(this.cm,n,n+1)}});var fo={},ho=/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;ar.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;r>n;++n){var i=this.lines[n];this.height-=i.height,Kn(i),Rr(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.splice.apply(e,[e.length,0].concat(this.lines))},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0,i=t.length;i>r;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;r>e;++e)if(n(this.lines[e]))return!0}},lr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(i>e){var o=Math.min(t,i-e),s=r.height;if(r.removeInner(e,o),this.height-=s-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25){var a=[];this.collapse(a),this.children=[new ar(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0,n=this.children.length;n>t;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>=e){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(;o.lines.length>50;){var a=o.lines.splice(o.lines.length-25,25),l=new ar(a);o.height-=l.height,this.children.splice(r+1,0,l),l.parent=this}this.maybeSpill()}break}e-=s}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new lr(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=Xr(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new lr(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>e){var a=Math.min(t,s-e);if(o.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=s}}};var po=0,mo=e.Doc=function(e,t,n){if(!(this instanceof mo))return new mo(e,t,n);null==n&&(n=0),lr.call(this,[new ar([Un("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.history=yr(),this.cleanGeneration=1,this.frontier=n;var r=zt(n,0);this.sel={from:r,to:r,head:r,anchor:r,shift:!1,extend:!1,goalColumn:null},this.id=++po,this.modeOption=t,"string"==typeof e&&(e=No(e)),sr(this,{from:r,to:r,text:e},null,{head:r,anchor:r})};mo.prototype=Jr(lr.prototype,{constructor:mo,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0,i=t.length;i>r;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=hr(this,this.first,this.first+this.size);return e===!1?t:t.join(e||"\n")},setValue:function(e){var t=zt(this.first,0),n=this.first+this.size-1;Ft(this,{from:t,to:zt(n,dr(this,n).text.length),text:No(e),origin:"setValue"},{head:t,anchor:t},!0)},replaceRange:function(e,t,n,r){t=Kt(this,t),n=n?Kt(this,n):t,Bt(this,e,t,n,r)},getRange:function(e,t,n){var r=fr(this,Kt(this,e),Kt(this,t));return n===!1?r:r.join(n||"\n")},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},setLine:function(e,t){Jt(this,e)&&Bt(this,t,zt(e,0),Kt(this,zt(e)))},removeLine:function(e){e?Bt(this,"",Kt(this,zt(e-1)),Kt(this,zt(e))):Bt(this,"",zt(0,0),Kt(this,zt(1,0)))},getLineHandle:function(e){return Jt(this,e)?dr(this,e):void 0},getLineNumber:function(e){return mr(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Kt(this,e)},getCursor:function(e){var t,n=this.sel;return t=null==e||"head"==e?n.head:"anchor"==e?n.anchor:"end"==e||e===!1?n.to:n.from,Ut(t)},somethingSelected:function(){return!Wt(this.sel.head,this.sel.anchor)},setCursor:ot(function(e,t,n){var r=Kt(this,"number"==typeof e?zt(e,t||0):e);n?Qt(this,r):Zt(this,r,r)}),setSelection:ot(function(e,t){Zt(this,Kt(this,e),Kt(this,t||e))}),extendSelection:ot(function(e,t){Qt(this,Kt(this,e),t&&Kt(this,t))}),getSelection:function(e){return this.getRange(this.sel.from,this.sel.to,e)},replaceSelection:function(e,t,n){Ft(this,{from:this.sel.from,to:this.sel.to,text:No(e),origin:n},t||"around")},undo:ot(function(){Ht(this,"undo")}),redo:ot(function(){Ht(this,"redo")}),setExtending:function(e){this.sel.extend=e},historySize:function(){var e=this.history;return{undo:e.done.length,redo:e.undone.length}},clearHistory:function(){this.history=yr(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration()},changeGeneration:function(){return this.history.lastOp=this.history.lastOrigin=null,this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Tr(this.history.done),undone:Tr(this.history.undone)}},setHistory:function(e){var t=this.history=yr(this.history.maxGeneration);t.done=e.done.slice(0),t.undone=e.undone.slice(0)},markText:function(e,t,n){return kn(this,Kt(this,e),Kt(this,t),n,"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft};return e=Kt(this,e),kn(this,e,e,n,"bookmark")},findMarksAt:function(e){e=Kt(this,e);var t=[],n=dr(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first;return this.iter(function(r){var i=r.text.length+1;return i>e?(t=e,!0):(e-=i,++n,void 0)}),Kt(this,zt(n,t))},indexFromPos:function(e){e=Kt(this,e);var t=e.ch;return e.line<this.first||e.ch<0?0:(this.iter(this.first,e.line,function(e){t+=e.text.length+1}),t)},copy:function(e){var t=new mo(hr(this,this.first,this.first+this.size),this.modeOption,this.first);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel={from:this.sel.from,to:this.sel.to,head:this.sel.head,anchor:this.sel.anchor,shift:this.sel.shift,extend:!1,goalColumn:this.sel.goalColumn},e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new mo(hr(this,t,n),e.mode||this.modeOption,t);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],r},unlinkDoc:function(t){if(t instanceof e&&(t=t.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=this.linked[n];if(r.doc==t){this.linked.splice(n,1),t.unlinkDoc(this);break}}if(t.history==this.history){var i=[t.id];cr(t,function(e){i.push(e.id)},!0),t.history=yr(),t.history.done=Tr(this.history.done,i),t.history.undone=Tr(this.history.undone,i)}},iterLinkedDocs:function(e){cr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm}}),mo.prototype.eachLine=mo.prototype.iter;var go="iter insert remove copy getEditor".split(" ");for(var vo in mo.prototype)mo.prototype.hasOwnProperty(vo)&&Xr(go,vo)<0&&(e.prototype[vo]=function(e){return function(){return e.apply(this.doc,arguments)}}(mo.prototype[vo]));e.e_stop=Or,e.e_preventDefault=Mr,e.e_stopPropagation=Ir;var bo,yo=0;e.on=Gr,e.off=Hr,e.signal=jr;var wo=30,xo=e.Pass={toString:function(){return"CodeMirror.Pass"}};Wr.prototype={set:function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)}},e.countColumn=Vr;var Co=[""],So=/[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ko=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;e.replaceGetRect=function(e){si=e};var To=function(){if(Ti)return!1;var e=ni("div");return"draggable"in e||"dragDrop"in e}();Ci?ai=function(e,t){return 36==e.charCodeAt(t-1)&&39==e.charCodeAt(t)}:Di&&!/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)?ai=function(e,t){return/\-[^ \-?]|\?[^ !\'\"\),.\-\/:;\?\]\}]/.test(e.slice(t-1,t+1))}:Li&&(ai=function(e,t){return t>1&&45==e.charCodeAt(t-1)&&/\w/.test(e.charAt(t-2))&&/[^\-?\.]/.test(e.charAt(t))?!0:/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|\u2026[\w~`@#$%\^&*(_=+{[><]/.test(e.slice(t-1,t+1))});var Lo,Eo,No=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;r>=t;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),s=o.indexOf("\r");-1!=s?(n.push(o.slice(0,s)),t+=s+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)};e.splitLines=No;var Ao=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},Do=function(){var e=ni("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Mo={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};e.keyNames=Mo,function(){for(var e=0;10>e;e++)Mo[e+48]=String(e);for(var e=65;90>=e;e++)Mo[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)Mo[e+111]=Mo[e+63235]="F"+e}();var Io,$o=function(){function e(e){return 255>=e?t.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1791>=e?n.charAt(e-1536):e>=1792&&2220>=e?"r":"L"}var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL",n="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,l="L";return function(t){if(!r.test(t))return!1;for(var n,c=t.length,u=[],d=0;c>d;++d)u.push(n=e(t.charCodeAt(d)));for(var d=0,f=l;c>d;++d){var n=u[d];"m"==n?u[d]=f:f=n}for(var d=0,h=l;c>d;++d){var n=u[d];"1"==n&&"r"==h?u[d]="n":o.test(n)&&(h=n,"r"==n&&(u[d]="R"))}for(var d=1,f=u[0];c-1>d;++d){var n=u[d];"+"==n&&"1"==f&&"1"==u[d+1]?u[d]="1":","!=n||f!=u[d+1]||"1"!=f&&"n"!=f||(u[d]=f),f=n}for(var d=0;c>d;++d){var n=u[d];if(","==n)u[d]="N";else if("%"==n){for(var p=d+1;c>p&&"%"==u[p];++p);for(var m=d&&"!"==u[d-1]||c-1>p&&"1"==u[p]?"1":"N",g=d;p>g;++g)u[g]=m;d=p-1}}for(var d=0,h=l;c>d;++d){var n=u[d];"L"==h&&"1"==n?u[d]="L":o.test(n)&&(h=n)}for(var d=0;c>d;++d)if(i.test(u[d])){for(var p=d+1;c>p&&i.test(u[p]);++p);for(var v="L"==(d?u[d-1]:l),b="L"==(c-1>p?u[p]:l),m=v||b?"L":"R",g=d;p>g;++g)u[g]=m;d=p-1}for(var y,w=[],d=0;c>d;)if(s.test(u[d])){var x=d;for(++d;c>d&&s.test(u[d]);++d);w.push({from:x,to:d,level:0})}else{var C=d,S=w.length;for(++d;c>d&&"L"!=u[d];++d);for(var g=C;d>g;)if(a.test(u[g])){g>C&&w.splice(S,0,{from:C,to:g,level:1});var k=g;for(++g;d>g&&a.test(u[g]);++g);w.splice(S,0,{from:k,to:g,level:2}),C=g}else++g;d>C&&w.splice(S,0,{from:C,to:d,level:1})}return 1==w[0].level&&(y=t.match(/^\s+/))&&(w[0].from=y[0].length,w.unshift({from:0,to:y[0].length,level:0})),1==qr(w).level&&(y=t.match(/\s+$/))&&(qr(w).to-=y[0].length,w.push({from:c-y[0].length,to:c,level:0})),w[0].level!=qr(w).level&&w.push({from:c,to:c,level:w[0].level}),w}}();return e.version="3.14.0",e}(),function(){function e(e,t,n){function r(t,n,r){if(t.text){var s=f?0:t.text.length-1,l=f?t.text.length:-1;if(t.text.length>a)return null;for(null!=r&&(s=r+h);s!=l;s+=h){var c=t.text.charAt(s);if(v.test(c)&&e.getTokenTypeAt(i(n,s+1))==m){var u=o[c];if(">"==u.charAt(1)==f)g.push(c);else{if(g.pop()!=u.charAt(0))return{pos:s,match:!1};if(!g.length)return{pos:s,match:!0}}}}}}var s=e.state.matchBrackets,a=s&&s.maxScanLineLength||1e4,l=t||e.getCursor(),c=e.getLineHandle(l.line),u=l.ch-1,d=u>=0&&o[c.text.charAt(u)]||o[c.text.charAt(++u)];if(!d)return null;var f=">"==d.charAt(1),h=f?1:-1;if(n&&f!=(u==l.ch))return null;for(var p,m=e.getTokenTypeAt(i(l.line,u+1)),g=[c.text.charAt(u)],v=/[(){}[\]]/,b=l.line,y=f?Math.min(b+100,e.lineCount()):Math.max(-1,b-100);b!=y&&!(p=b==l.line?r(c,b,u):r(e.getLineHandle(b),b));b+=h);return{from:i(l.line,u),to:p&&i(b,p.pos),match:p&&p.match,forward:f}}function t(t,n){var o=t.state.matchBrackets.maxHighlightLineLength||1e3,s=e(t);if(!(!s||t.getLine(s.from.line).length>o||s.to&&t.getLine(s.to.line).length>o)){var a=s.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",l=t.markText(s.from,i(s.from.line,s.from.ch+1),{className:a}),c=s.to&&t.markText(s.to,i(s.to.line,s.to.ch+1),{className:a});r&&t.state.focused&&t.display.input.focus();var u=function(){t.operation(function(){l.clear(),c&&c.clear()})};return n?(setTimeout(u,800),void 0):u}}function n(e){e.operation(function(){s&&(s(),s=null),e.somethingSelected()||(s=t(e,!1))})}var r=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),i=CodeMirror.Pos,o={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},s=null;CodeMirror.defineOption("matchBrackets",!1,function(e,t,r){r&&r!=CodeMirror.Init&&e.off("cursorActivity",n),t&&(e.state.matchBrackets="object"==typeof t?t:{},e.on("cursorActivity",n))}),CodeMirror.defineExtension("matchBrackets",function(){t(this,!0)}),CodeMirror.defineExtension("findMatchingBracket",function(t,n){return e(this,t,n)})}(),CodeMirror.defineMode("javascript",function(e,t){function n(e,t,n){return t.tokenize=n,n(e,t)}function r(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t&&!r)return!1;r=!r&&"\\"==n}return r}function i(e,t,n){return W=e,V=n,t}function o(e,t){var o=e.next();if('"'==o||"'"==o)return n(e,t,s(o));if(/[\[\]{}\(\),;\:\.]/.test(o))return i(o);if("0"==o&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if(/\d/.test(o)||"-"==o&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==o)return e.eat("*")?n(e,t,a):e.eat("/")?(e.skipToEnd(),i("comment","comment")):"operator"==t.lastType||"keyword c"==t.lastType||/^[\[{}\(,;:]$/.test(t.lastType)?(r(e,"/"),e.eatWhile(/[gimy]/),i("regexp","string-2")):(e.eatWhile(Q),i("operator",null,e.current()));if("#"==o)return e.skipToEnd(),i("error","error");if(Q.test(o))return e.eatWhile(Q),i("operator",null,e.current());e.eatWhile(/[\w\$_]/);var l=e.current(),c=J.propertyIsEnumerable(l)&&J[l];return c&&"."!=t.lastType?i(c.type,c.style,l):i("variable","variable",l)}function s(e){return function(t,n){return r(t,e)||(n.tokenize=o),i("string","string")}}function a(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function c(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function u(e,t,n,r,i){var o=e.cc;for(Z.state=e,Z.stream=i,Z.marked=null,Z.cc=o,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var s=o.length?o.pop():K?w:y;if(s(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Z.marked?Z.marked:"variable"==n&&c(e,r)?"variable-2":t}}}function d(){for(var e=arguments.length-1;e>=0;e--)Z.cc.push(arguments[e])}function f(){return d.apply(null,arguments),!0}function h(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var n=Z.state;if(n.context){if(Z.marked="def",t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;n.globalVars={name:e,next:n.globalVars}}}function p(){Z.state.context={prev:Z.state.context,vars:Z.state.localVars},Z.state.localVars=et}function m(){Z.state.localVars=Z.state.context.vars,Z.state.context=Z.state.context.prev}function g(e,t){var n=function(){var n=Z.state,r=n.indented;"stat"==n.lexical.type&&(r=n.lexical.indented),n.lexical=new l(r,Z.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function v(){var e=Z.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function b(e){return function(t){return t==e?f():";"==e?d():f(arguments.callee)}}function y(e){return"var"==e?f(g("vardef"),P,b(";"),v):"keyword a"==e?f(g("form"),w,y,v):"keyword b"==e?f(g("form"),y,v):"{"==e?f(g("}"),I,v):";"==e?f():"if"==e?f(g("form"),w,y,v,G(Z.state.indented)):"function"==e?f(B):"for"==e?f(g("form"),b("("),g(")"),H,b(")"),v,y,v):"variable"==e?f(g("stat"),E):"switch"==e?f(g("form"),w,g("}","switch"),b("{"),I,v,v):"case"==e?f(w,b(":")):"default"==e?f(b(":")):"catch"==e?f(g("form"),p,b("("),z,b(")"),y,v,m):d(g("stat"),w,b(";"),v)}function w(e){return C(e,!1)}function x(e){return C(e,!0)}function C(e,t){var n=t?L:T;return Y.hasOwnProperty(e)?f(n):"function"==e?f(B):"keyword c"==e?f(t?k:S):"("==e?f(g(")"),S,b(")"),v,n):"operator"==e?f(t?x:w):"["==e?f(g("]"),M(x,"]"),v,n):"{"==e?f(g("}"),M(A,"}"),v,n):f()}function S(e){return e.match(/[;\}\)\],]/)?d():d(w)}function k(e){return e.match(/[;\}\)\],]/)?d():d(x)}function T(e,t){return","==e?f(w):L(e,t,T)}function L(e,t,n){return n||(n=L),"operator"==e?/\+\+|--/.test(t)?f(n):"?"==t?f(w,b(":"),w):f(w):";"!=e?"("==e?f(g(")","call"),M(x,")"),v,n):"."==e?f(N,n):"["==e?f(g("]"),w,b("]"),v,n):void 0:void 0}function E(e){return":"==e?f(v,y):d(T,b(";"),v)}function N(e){return"variable"==e?(Z.marked="property",f()):void 0}function A(e,t){if("variable"==e){if(Z.marked="property","get"==t||"set"==t)return f(D)}else("number"==e||"string"==e)&&(Z.marked=e+" property");return Y.hasOwnProperty(e)?f(b(":"),x):void 0}function D(e){return":"==e?f(w):"variable"!=e?f(b(":"),w):(Z.marked="property",f(B))}function M(e,t){function n(r){if(","==r){var i=Z.state.lexical;return"call"==i.info&&(i.pos=(i.pos||0)+1),f(e,n)}return r==t?f():f(b(t))}return function(r){return r==t?f():d(e,n)}}function I(e){return"}"==e?f():d(y,I)}function $(e){return":"==e?f(O):d()}function O(e){return"variable"==e?(Z.marked="variable-3",f()):d()}function P(e,t){return"variable"==e?(h(t),X?f($,F):f(F)):d()}function F(e,t){return"="==t?f(x,F):","==e?f(P):void 0}function G(e){return function(t,n){return"keyword b"==t&&"else"==n?(Z.state.lexical=new l(e,0,"form",null,Z.state.lexical),f(y,v)):d()}}function H(e){return"var"==e?f(P,b(";"),R):";"==e?f(R):"variable"==e?f(j):d(w,b(";"),R)}function j(e,t){return"in"==t?f(w):f(T,R)}function R(e,t){return";"==e?f(_):"in"==t?f(w):d(w,b(";"),_)}function _(e){")"!=e&&f(w)}function B(e,t){return"variable"==e?(h(t),f(B)):"("==e?f(g(")"),p,M(z,")"),v,y,m):void 0}function z(e,t){return"variable"==e?(h(t),X?f($):f()):void 0}var W,V,U=e.indentUnit,q=t.statementIndent,K=t.json,X=t.typescript,J=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},s={"if":e("if"),"while":t,"with":t,"else":n,"do":n,"try":n,"finally":n,"return":r,"break":r,"continue":r,"new":r,"delete":r,"throw":r,"var":e("var"),"const":e("var"),let:e("var"),"function":e("function"),"catch":e("catch"),"for":e("for"),"switch":e("switch"),"case":e("case"),"default":e("default"),"in":i,"typeof":i,"instanceof":i,"true":o,"false":o,"null":o,undefined:o,NaN:o,Infinity:o,"this":e("this")};if(X){var a={type:"variable",style:"variable-3"},l={"interface":e("interface"),"class":e("class"),"extends":e("extends"),constructor:e("constructor"),"public":e("public"),"private":e("private"),"protected":e("protected"),"static":e("static"),"super":e("super"),string:a,number:a,bool:a,any:a};for(var c in l)s[c]=l[c]}return s}(),Q=/[+\-*&%=<>!?|~^]/,Y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0},Z={state:null,column:null,marked:null,cc:null},et={name:"this",next:{name:"arguments"}};return v.lex=!0,{startState:function(e){return{tokenize:o,lastType:null,cc:[],lexical:new l((e||0)-U,0,"block",!1),localVars:t.localVars,globalVars:t.globalVars,context:t.localVars&&{vars:t.localVars},indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),t.tokenize!=a&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==W?n:(t.lastType="operator"!=W||"++"!=V&&"--"!=V?W:"incdec",u(t,n,W,V,e))},indent:function(e,n){if(e.tokenize==a)return CodeMirror.Pass;if(e.tokenize!=o)return 0;var r=n&&n.charAt(0),i=e.lexical;"stat"==i.type&&"}"==r&&(i=i.prev),q&&")"==i.type&&"stat"==i.prev.type&&(i=i.prev);var s=i.type,l=r==s;return"vardef"==s?i.indented+("operator"==e.lastType||","==e.lastType?4:0):"form"==s&&"{"==r?i.indented:"form"==s?i.indented+U:"stat"==s?i.indented+("operator"==e.lastType||","==e.lastType?q||U:0):"switch"!=i.info||l||0==t.doubleIndentSwitch?i.align?i.column+(l?0:1):i.indented+(l?0:U):i.indented+(/^(?:case|default)\b/.test(n)?U:2*U)},electricChars:":{}",blockCommentStart:K?null:"/*",blockCommentEnd:K?null:"*/",lineComment:K?null:"//",jsonMode:K}}),CodeMirror.defineMIME("text/javascript","javascript"),CodeMirror.defineMIME("text/ecmascript","javascript"),CodeMirror.defineMIME("application/javascript","javascript"),CodeMirror.defineMIME("application/ecmascript","javascript"),CodeMirror.defineMIME("application/json",{name:"javascript",json:!0}),CodeMirror.defineMIME("application/x-json",{name:"javascript",json:!0}),CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:!0}),CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:!0}),!function(e){"use strict";function t(){e(".dropdown-backdrop").remove(),e(r).each(function(){n(e(this)).removeClass("open")})}function n(t){var n,r=t.attr("data-target");return r||(r=t.attr("href"),r=r&&/#/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,"")),n=r&&e(r),n&&n.length||(n=t.parent()),n}var r="[data-toggle=dropdown]",i=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};i.prototype={constructor:i,toggle:function(){var r,i,o=e(this);if(!o.is(".disabled, :disabled"))return r=n(o),i=r.hasClass("open"),t(),i||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",t),r.toggleClass("open")),o.focus(),!1},keydown:function(t){var i,o,s,a,l;if(/(38|40|27)/.test(t.keyCode)&&(i=e(this),t.preventDefault(),t.stopPropagation(),!i.is(".disabled, :disabled"))){if(s=n(i),a=s.hasClass("open"),!a||a&&27==t.keyCode)return 27==t.which&&s.find(r).focus(),i.click();o=e("[role=menu] li:not(.divider):visible a",s),o.length&&(l=o.index(o.filter(":focus")),38==t.keyCode&&l>0&&l--,40==t.keyCode&&l<o.length-1&&l++,~l||(l=0),o.eq(l).focus())}}};var o=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var n=e(this),r=n.data("dropdown");r||n.data("dropdown",r=new i(this)),"string"==typeof t&&r[t].call(n)})},e.fn.dropdown.Constructor=i,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=o,this},e(document).on("click.dropdown.data-api",t).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",r,i.prototype.toggle).on("keydown.dropdown.data-api",r+", [role=menu]",i.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,o,s,a,l;for(this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,s=this.options.trigger.split(" "),l=s.length;l--;)a=s[l],"click"==a?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):"manual"!=a&&(i="hover"==a?"mouseenter":"focus",o="hover"==a?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(o+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n,r=e.fn[this.type].defaults,i={};return this._options&&e.each(this._options,function(e,t){r[e]!=t&&(i[e]=t)},this),n=e(t.currentTarget)[this.type](i).data(this.type),n.options.delay&&n.options.delay.show?(clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show),void 0):n.show()},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);return this.timeout&&clearTimeout(this.timeout),n.options.delay&&n.options.delay.hide?(n.hoverState="out",this.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide),void 0):n.hide()},show:function(){var t,n,r,i,o,s,a=e.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(a),a.isDefaultPrevented())return;switch(t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),o="function"==typeof this.options.placement?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight,o){case"bottom":s={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":s={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":s={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":s={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(s,o),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n,r,i,o,s=this.tip(),a=s[0].offsetWidth,l=s[0].offsetHeight;s.offset(e).addClass(t).addClass("in"),n=s[0].offsetWidth,r=s[0].offsetHeight,"top"==t&&r!=l&&(e.top=e.top+l-r,o=!0),"bottom"==t||"top"==t?(i=0,e.left<0&&(i=-2*e.left,e.left=0,s.offset(e),n=s[0].offsetWidth,r=s[0].offsetHeight),this.replaceArrow(i-a+n,n,"left")):this.replaceArrow(r-l,r,"top"),o&&s.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function t(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var n=this.tip(),r=e.Event("hide");return this.$element.trigger(r),r.isDefaultPrevented()?void 0:(n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?t():n.detach(),this.$element.trigger("hidden"),this)},fixTitle:function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},"function"==typeof t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)
},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),o="object"==typeof n&&n;i||r.data("tooltip",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=("function"==typeof n.content?n.content.call(t[0]):n.content)||t.attr("data-content")},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),o="object"==typeof n&&n;i||r.data("popover",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")}))},hide:function(t){t&&t.preventDefault();t=e.Event("hide"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]===e.target||t.$element.has(e.target).length||t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){27==t.which&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=e.support.transition&&n;if(this.$backdrop=e('<div class="modal-backdrop '+n+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;r?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),o=e.extend({},e.fn.modal.defaults,r.data(),"object"==typeof n&&n);i||r.data("modal",i=new t(this,o)),"string"==typeof n?i[n]():o.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(o).one("hide",function(){n.focus()})})}(window.jQuery),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["exports"],t):"undefined"!=typeof exports?t(exports):t(e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e,t){return hn.slice(e,t)}function r(e){return"0123456789".indexOf(e)>=0}function i(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function s(e){return" "===e||"	"===e||""===e||"\f"===e||"\xa0"===e||e.charCodeAt(0)>=5760&&"\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(e)>=0}function a(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierStart.test(e)}function c(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierPart.test(e)}function u(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function d(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function h(e){var t=!1;switch(e.length){case 2:t="if"===e||"in"===e||"do"===e;break;case 3:t="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:t="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:t="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:t="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:t="default"===e||"finally"===e;break;case 8:t="function"===e||"continue"===e||"debugger"===e;break;case 10:t="instanceof"===e}if(t)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return pn&&d(e)?!0:u(e)}function p(){var e,t,n;for(t=!1,n=!1;bn>mn;)if(e=hn[mn],n)e=hn[mn++],a(e)&&(n=!1,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn);else if(t)a(e)?("\r"===e&&"\n"===hn[mn+1]&&++mn,++gn,++mn,vn=mn,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")):(e=hn[mn++],mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=hn[mn],"/"===e&&(++mn,t=!1)));else if("/"===e)if(e=hn[mn+1],"/"===e)mn+=2,n=!0;else{if("*"!==e)break;mn+=2,t=!0,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")}else if(s(e))++mn;else{if(!a(e))break;++mn,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function m(e){var t,n,r,o=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(bn>mn&&i(hn[mn])))return"";r=hn[mn++],o=16*o+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(o)}function g(){var e,t,n,r;if(e=hn[mn],l(e)){if(t=mn,"\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!l(e))return;n=e}else mn=r,n="u"}else n=hn[mn++];for(;bn>mn&&(e=hn[mn],c(e));)if("\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!c(e))return;n+=e}else mn=r,n+="u"}else n+=hn[mn++];return 1===n.length?{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:h(n)?{type:an.Keyword,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"null"===n?{type:an.NullLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"true"===n||"false"===n?{type:an.BooleanLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}}}function v(){var e,t,n,i=mn,o=hn[mn];return";"===o||"{"===o||"}"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):","===o||"("===o||")"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):(e=hn[mn+1],"."!==o||r(e)?(t=hn[mn+2],n=hn[mn+3],">"===o&&">"===e&&">"===t&&"="===n?(mn+=4,{type:an.Punctuator,value:">>>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"===",lineNumber:gn,lineStart:vn,range:[i,mn]}):"!"===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"!==",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&">"===t?(mn+=3,{type:an.Punctuator,value:">>>",lineNumber:gn,lineStart:vn,range:[i,mn]}):"<"===o&&"<"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"<<=",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:">>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===e&&"<>=!+-*%&|^/".indexOf(o)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):o===e&&"+-<>&|".indexOf(o)>=0&&"+-<>&|".indexOf(e)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):"[]<>+-*%&|^!~?:=/".indexOf(o)>=0?{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]}:void 0):{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]})}function b(){var e,n,s;if(s=hn[mn],t(r(s)||"."===s,"Numeric literal must start with a decimal digit or a decimal point"),n=mn,e="","."!==s){if(e=hn[mn++],s=hn[mn],"0"===e){if("x"===s||"X"===s){for(e+=hn[mn++];bn>mn&&(s=hn[mn],i(s));)e+=hn[mn++];return e.length<=2&&L({},dn.UnexpectedToken,"ILLEGAL"),bn>mn&&(s=hn[mn],l(s)&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,16),lineNumber:gn,lineStart:vn,range:[n,mn]}}if(o(s)){for(e+=hn[mn++];bn>mn&&(s=hn[mn],o(s));)e+=hn[mn++];return bn>mn&&(s=hn[mn],(l(s)||r(s))&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:gn,lineStart:vn,range:[n,mn]}}r(s)&&L({},dn.UnexpectedToken,"ILLEGAL")}for(;bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++]}if("."===s)for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];if("e"===s||"E"===s)if(e+=hn[mn++],s=hn[mn],("+"===s||"-"===s)&&(e+=hn[mn++]),s=hn[mn],r(s))for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];else s="character "+s,mn>=bn&&(s="<end>"),L({},dn.UnexpectedToken,"ILLEGAL");return bn>mn&&(s=hn[mn],l(s)&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseFloat(e),lineNumber:gn,lineStart:vn,range:[n,mn]}}function y(){var e,n,r,i,s,l,c="",u=!1;for(e=hn[mn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=mn,++mn;bn>mn;){if(r=hn[mn++],r===e){e="";break}if("\\"===r)if(r=hn[mn++],a(r))++gn,"\r"===r&&"\n"===hn[mn]&&++mn;else switch(r){case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+="	";break;case"u":case"x":l=mn,s=m(r),s?c+=s:(mn=l,c+=r);break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+="";break;default:o(r)?(i="01234567".indexOf(r),0!==i&&(u=!0),bn>mn&&o(hn[mn])&&(u=!0,i=8*i+"01234567".indexOf(hn[mn++]),"0123".indexOf(r)>=0&&bn>mn&&o(hn[mn])&&(i=8*i+"01234567".indexOf(hn[mn++]))),c+=String.fromCharCode(i)):c+=r}else{if(a(r))break;c+=r}}return""!==e&&L({},dn.UnexpectedToken,"ILLEGAL"),{type:an.StringLiteral,value:c,octal:u,lineNumber:gn,lineStart:vn,range:[n,mn]}}function w(){var e,n,r,i,o,s,l,u=!1,d=!1;for(yn=null,p(),r=mn,n=hn[mn],t("/"===n,"Regular expression literal must start with a slash"),e=hn[mn++];bn>mn;)if(n=hn[mn++],e+=n,u)"]"===n&&(u=!1);else if("\\"===n)n=hn[mn++],a(n)&&L({},dn.UnterminatedRegExp),e+=n;else{if("/"===n){d=!0;break}"["===n?u=!0:a(n)&&L({},dn.UnterminatedRegExp)}for(d||L({},dn.UnterminatedRegExp),i=e.substr(1,e.length-2),o="";bn>mn&&(n=hn[mn],c(n));)if(++mn,"\\"===n&&bn>mn)if(n=hn[mn],"u"===n)if(++mn,l=mn,n=m("u"))for(o+=n,e+="\\u";mn>l;++l)e+=hn[l];else mn=l,o+="u",e+="\\u";else e+="\\";else o+=n,e+=n;try{s=new RegExp(i,o)}catch(f){L({},dn.InvalidRegExp)}return{literal:e,value:s,range:[r,mn]}}function x(e){return e.type===an.Identifier||e.type===an.Keyword||e.type===an.BooleanLiteral||e.type===an.NullLiteral}function C(){var e,t;return p(),mn>=bn?{type:an.EOF,lineNumber:gn,lineStart:vn,range:[mn,mn]}:(t=v(),"undefined"!=typeof t?t:(e=hn[mn],"'"===e||'"'===e?y():"."===e||r(e)?b():(t=g(),"undefined"!=typeof t?t:(L({},dn.UnexpectedToken,"ILLEGAL"),void 0))))}function S(){var e;return yn?(mn=yn.range[1],gn=yn.lineNumber,vn=yn.lineStart,e=yn,yn=null,e):(yn=null,C())}function k(){var e,t,n;return null!==yn?yn:(e=mn,t=gn,n=vn,yn=C(),mn=e,gn=t,vn=n,yn)}function T(){var e,t,n,r;return e=mn,t=gn,n=vn,p(),r=gn!==t,mn=e,gn=t,vn=n,r}function L(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,function(e,t){return r[t]||""});throw"number"==typeof e.lineNumber?(n=new Error("Line "+e.lineNumber+": "+i),n.index=e.range[0],n.lineNumber=e.lineNumber,n.column=e.range[0]-vn+1):(n=new Error("Line "+gn+": "+i),n.index=mn,n.lineNumber=gn,n.column=mn-vn+1),n}function E(){try{L.apply(null,arguments)}catch(e){if(!xn.errors)throw e;xn.errors.push(e)}}function N(e){if(e.type===an.EOF&&L(e,dn.UnexpectedEOS),e.type===an.NumericLiteral&&L(e,dn.UnexpectedNumber),e.type===an.StringLiteral&&L(e,dn.UnexpectedString),e.type===an.Identifier&&L(e,dn.UnexpectedIdentifier),e.type===an.Keyword){if(u(e.value))L(e,dn.UnexpectedReserved);else if(pn&&d(e.value))return E(e,dn.StrictReservedWord),void 0;L(e,dn.UnexpectedToken,e.value)}L(e,dn.UnexpectedToken,e.value)}function A(e){var t=S();(t.type!==an.Punctuator||t.value!==e)&&N(t)}function D(e){var t=S();(t.type!==an.Keyword||t.value!==e)&&N(t)}function M(e){var t=k();return t.type===an.Punctuator&&t.value===e}function I(e){var t=k();return t.type===an.Keyword&&t.value===e}function $(){var e=k(),t=e.value;return e.type!==an.Punctuator?!1:"="===t||"*="===t||"/="===t||"%="===t||"+="===t||"-="===t||"<<="===t||">>="===t||">>>="===t||"&="===t||"^="===t||"|="===t}function O(){var e,t;if(";"===hn[mn])return S(),void 0;if(t=gn,p(),gn===t){if(M(";"))return S(),void 0;e=k(),e.type===an.EOF||M("}")||N(e)}}function P(e){return e.type===cn.Identifier||e.type===cn.MemberExpression}function F(){var e=[];for(A("[");!M("]");)M(",")?(S(),e.push(null)):(e.push(ct()),M("]")||A(","));return A("]"),{type:cn.ArrayExpression,elements:e}}function G(e,t){var n,r;return n=pn,r=Ft(),t&&pn&&f(e[0].name)&&E(t,dn.StrictParamName),pn=n,{type:cn.FunctionExpression,id:null,params:e,defaults:[],body:r,rest:null,generator:!1,expression:!1}}function H(){var e=S();return e.type===an.StringLiteral||e.type===an.NumericLiteral?(pn&&e.octal&&E(e,dn.StrictOctalLiteral),Kt(e)):{type:cn.Identifier,name:e.value}}function j(){var e,t,n,r;return e=k(),e.type===an.Identifier?(n=H(),"get"!==e.value||M(":")?"set"!==e.value||M(":")?(A(":"),{type:cn.Property,key:n,value:ct(),kind:"init"}):(t=H(),A("("),e=k(),e.type!==an.Identifier?(A(")"),E(e,dn.UnexpectedToken,e.value),{type:cn.Property,key:t,value:G([]),kind:"set"}):(r=[ht()],A(")"),{type:cn.Property,key:t,value:G(r,e),kind:"set"})):(t=H(),A("("),A(")"),{type:cn.Property,key:t,value:G([]),kind:"get"})):e.type!==an.EOF&&e.type!==an.Punctuator?(t=H(),A(":"),{type:cn.Property,key:t,value:ct(),kind:"init"}):(N(e),void 0)}function R(){var e,t,n,r=[],i={},o=String;for(A("{");!M("}");)e=j(),t=e.key.type===cn.Identifier?e.key.name:o(e.key.value),n="init"===e.kind?un.Data:"get"===e.kind?un.Get:un.Set,Object.prototype.hasOwnProperty.call(i,t)?(i[t]===un.Data?pn&&n===un.Data?E({},dn.StrictDuplicateProperty):n!==un.Data&&E({},dn.AccessorDataProperty):n===un.Data?E({},dn.AccessorDataProperty):i[t]&n&&E({},dn.AccessorGetSet),i[t]|=n):i[t]=n,r.push(e),M("}")||A(",");return A("}"),{type:cn.ObjectExpression,properties:r}}function _(){var e;return A("("),e=ut(),A(")"),e}function B(){var e=k(),t=e.type;if(t===an.Identifier)return{type:cn.Identifier,name:S().value};if(t===an.StringLiteral||t===an.NumericLiteral)return pn&&e.octal&&E(e,dn.StrictOctalLiteral),Kt(S());if(t===an.Keyword){if(I("this"))return S(),{type:cn.ThisExpression};if(I("function"))return Ht()}return t===an.BooleanLiteral?(S(),e.value="true"===e.value,Kt(e)):t===an.NullLiteral?(S(),e.value=null,Kt(e)):M("[")?F():M("{")?R():M("(")?_():M("/")||M("/=")?Kt(w()):N(S())}function z(){var e=[];if(A("("),!M(")"))for(;bn>mn&&(e.push(ct()),!M(")"));)A(",");return A(")"),e}function W(){var e=S();return x(e)||N(e),{type:cn.Identifier,name:e.value}}function V(){return A("."),W()}function U(){var e;return A("["),e=ut(),A("]"),e}function q(){var e;return D("new"),e={type:cn.NewExpression,callee:X(),arguments:[]},M("(")&&(e.arguments=z()),e}function K(){var e;for(e=I("new")?q():B();M(".")||M("[")||M("(");)e=M("(")?{type:cn.CallExpression,callee:e,arguments:z()}:M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function X(){var e;for(e=I("new")?q():B();M(".")||M("[");)e=M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function J(){var e,t=K();return e=k(),e.type!==an.Punctuator?t:(!M("++")&&!M("--")||T()||(pn&&t.type===cn.Identifier&&f(t.name)&&E({},dn.StrictLHSPostfix),P(t)||L({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:S().value,argument:t,prefix:!1}),t)}function Q(){var e,t;return e=k(),e.type!==an.Punctuator&&e.type!==an.Keyword?J():M("++")||M("--")?(e=S(),t=Q(),pn&&t.type===cn.Identifier&&f(t.name)&&E({},dn.StrictLHSPrefix),P(t)||L({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:e.value,argument:t,prefix:!0}):M("+")||M("-")||M("~")||M("!")?t={type:cn.UnaryExpression,operator:S().value,argument:Q(),prefix:!0}:I("delete")||I("void")||I("typeof")?(t={type:cn.UnaryExpression,operator:S().value,argument:Q(),prefix:!0},pn&&"delete"===t.operator&&t.argument.type===cn.Identifier&&E({},dn.StrictDelete),t):J()}function Y(){for(var e=Q();M("*")||M("/")||M("%");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Q()};return e}function Z(){for(var e=Y();M("+")||M("-");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Y()};return e}function et(){for(var e=Z();M("<<")||M(">>")||M(">>>");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Z()};return e}function tt(){var e,t;for(t=wn.allowIn,wn.allowIn=!0,e=et();M("<")||M(">")||M("<=")||M(">=")||t&&I("in")||I("instanceof");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:et()};return wn.allowIn=t,e}function nt(){for(var e=tt();M("==")||M("!=")||M("===")||M("!==");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:tt()};return e}function rt(){for(var e=nt();M("&");)S(),e={type:cn.BinaryExpression,operator:"&",left:e,right:nt()};return e}function it(){for(var e=rt();M("^");)S(),e={type:cn.BinaryExpression,operator:"^",left:e,right:rt()};return e}function ot(){for(var e=it();M("|");)S(),e={type:cn.BinaryExpression,operator:"|",left:e,right:it()};return e}function st(){for(var e=ot();M("&&");)S(),e={type:cn.LogicalExpression,operator:"&&",left:e,right:ot()};return e}function at(){for(var e=st();M("||");)S(),e={type:cn.LogicalExpression,operator:"||",left:e,right:st()};return e}function lt(){var e,t,n;return e=at(),M("?")&&(S(),t=wn.allowIn,wn.allowIn=!0,n=ct(),wn.allowIn=t,A(":"),e={type:cn.ConditionalExpression,test:e,consequent:n,alternate:ct()}),e}function ct(){var e,t;return e=k(),t=lt(),$()&&(P(t)||L({},dn.InvalidLHSInAssignment),pn&&t.type===cn.Identifier&&f(t.name)&&E(e,dn.StrictLHSAssignment),t={type:cn.AssignmentExpression,operator:S().value,left:t,right:ct()}),t}function ut(){var e=ct();if(M(","))for(e={type:cn.SequenceExpression,expressions:[e]};bn>mn&&M(",");)S(),e.expressions.push(ct());return e}function dt(){for(var e,t=[];bn>mn&&!M("}")&&(e=jt(),"undefined"!=typeof e);)t.push(e);return t}function ft(){var e;return A("{"),e=dt(),A("}"),{type:cn.BlockStatement,body:e}}function ht(){var e=S();return e.type!==an.Identifier&&N(e),{type:cn.Identifier,name:e.value}}function pt(e){var t=ht(),n=null;return pn&&f(t.name)&&E({},dn.StrictVarName),"const"===e?(A("="),n=ct()):M("=")&&(S(),n=ct()),{type:cn.VariableDeclarator,id:t,init:n}}function mt(e){var t=[];do{if(t.push(pt(e)),!M(","))break;S()}while(bn>mn);return t}function gt(){var e;return D("var"),e=mt(),O(),{type:cn.VariableDeclaration,declarations:e,kind:"var"}}function vt(e){var t;return D(e),t=mt(e),O(),{type:cn.VariableDeclaration,declarations:t,kind:e}}function bt(){return A(";"),{type:cn.EmptyStatement}}function yt(){var e=ut();return O(),{type:cn.ExpressionStatement,expression:e}}function wt(){var e,t,n;return D("if"),A("("),e=ut(),A(")"),t=Pt(),I("else")?(S(),n=Pt()):n=null,{type:cn.IfStatement,test:e,consequent:t,alternate:n}}function xt(){var e,t,n;return D("do"),n=wn.inIteration,wn.inIteration=!0,e=Pt(),wn.inIteration=n,D("while"),A("("),t=ut(),A(")"),M(";")&&S(),{type:cn.DoWhileStatement,body:e,test:t}}function Ct(){var e,t,n;return D("while"),A("("),e=ut(),A(")"),n=wn.inIteration,wn.inIteration=!0,t=Pt(),wn.inIteration=n,{type:cn.WhileStatement,test:e,body:t}}function St(){var e=S();return{type:cn.VariableDeclaration,declarations:mt(),kind:e.value}}function kt(){var e,t,n,r,i,o,s;return e=t=n=null,D("for"),A("("),M(";")?S():(I("var")||I("let")?(wn.allowIn=!1,e=St(),wn.allowIn=!0,1===e.declarations.length&&I("in")&&(S(),r=e,i=ut(),e=null)):(wn.allowIn=!1,e=ut(),wn.allowIn=!0,I("in")&&(P(e)||L({},dn.InvalidLHSInForIn),S(),r=e,i=ut(),e=null)),"undefined"==typeof r&&A(";")),"undefined"==typeof r&&(M(";")||(t=ut()),A(";"),M(")")||(n=ut())),A(")"),s=wn.inIteration,wn.inIteration=!0,o=Pt(),wn.inIteration=s,"undefined"==typeof r?{type:cn.ForStatement,init:e,test:t,update:n,body:o}:{type:cn.ForInStatement,left:r,right:i,body:o,each:!1}}function Tt(){var e,t=null;return D("continue"),";"===hn[mn]?(S(),wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):T()?(wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||L({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:t})}function Lt(){var e,t=null;return D("break"),";"===hn[mn]?(S(),wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):T()?(wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||L({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:t})}function Et(){var e,t=null;return D("return"),wn.inFunctionBody||E({},dn.IllegalReturn)," "===hn[mn]&&l(hn[mn+1])?(t=ut(),O(),{type:cn.ReturnStatement,argument:t}):T()?{type:cn.ReturnStatement,argument:null}:(M(";")||(e=k(),M("}")||e.type===an.EOF||(t=ut())),O(),{type:cn.ReturnStatement,argument:t})}function Nt(){var e,t;return pn&&E({},dn.StrictModeWith),D("with"),A("("),e=ut(),A(")"),t=Pt(),{type:cn.WithStatement,object:e,body:t}}function At(){var e,t,n=[];for(I("default")?(S(),e=null):(D("case"),e=ut()),A(":");bn>mn&&!(M("}")||I("default")||I("case"))&&(t=Pt(),"undefined"!=typeof t);)n.push(t);return{type:cn.SwitchCase,test:e,consequent:n}}function Dt(){var e,t,n,r,i;if(D("switch"),A("("),e=ut(),A(")"),A("{"),M("}"))return S(),{type:cn.SwitchStatement,discriminant:e};for(t=[],r=wn.inSwitch,wn.inSwitch=!0,i=!1;bn>mn&&!M("}");)n=At(),null===n.test&&(i&&L({},dn.MultipleDefaultsInSwitch),i=!0),t.push(n);return wn.inSwitch=r,A("}"),{type:cn.SwitchStatement,discriminant:e,cases:t}}function Mt(){var e;return D("throw"),T()&&L({},dn.NewlineAfterThrow),e=ut(),O(),{type:cn.ThrowStatement,argument:e}}function It(){var e;return D("catch"),A("("),M(")")&&N(k()),e=ht(),pn&&f(e.name)&&E({},dn.StrictCatchVariable),A(")"),{type:cn.CatchClause,param:e,body:ft()}}function $t(){var e,t=[],n=null;return D("try"),e=ft(),I("catch")&&t.push(It()),I("finally")&&(S(),n=ft()),0!==t.length||n||L({},dn.NoCatchOrFinally),{type:cn.TryStatement,block:e,guardedHandlers:[],handlers:t,finalizer:n}}function Ot(){return D("debugger"),O(),{type:cn.DebuggerStatement}}function Pt(){var e,t,n=k();if(n.type===an.EOF&&N(n),n.type===an.Punctuator)switch(n.value){case";":return bt();case"{":return ft();case"(":return yt()}if(n.type===an.Keyword)switch(n.value){case"break":return Lt();case"continue":return Tt();case"debugger":return Ot();case"do":return xt();case"for":return kt();case"function":return Gt();case"if":return wt();case"return":return Et();case"switch":return Dt();case"throw":return Mt();case"try":return $t();case"var":return gt();case"while":return Ct();case"with":return Nt()}return e=ut(),e.type===cn.Identifier&&M(":")?(S(),Object.prototype.hasOwnProperty.call(wn.labelSet,e.name)&&L({},dn.Redeclaration,"Label",e.name),wn.labelSet[e.name]=!0,t=Pt(),delete wn.labelSet[e.name],{type:cn.LabeledStatement,label:e,body:t}):(O(),{type:cn.ExpressionStatement,expression:e})}function Ft(){var e,t,r,i,o,s,a,l,c=[];for(A("{");bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=jt(),c.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&E(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(o=wn.labelSet,s=wn.inIteration,a=wn.inSwitch,l=wn.inFunctionBody,wn.labelSet={},wn.inIteration=!1,wn.inSwitch=!1,wn.inFunctionBody=!0;bn>mn&&!M("}")&&(e=jt(),"undefined"!=typeof e);)c.push(e);return A("}"),wn.labelSet=o,wn.inIteration=s,wn.inSwitch=a,wn.inFunctionBody=l,{type:cn.BlockStatement,body:c}}function Gt(){var e,t,n,r,i,o,s,a,l,c=[];if(D("function"),r=k(),e=ht(),pn?f(r.value)&&E(r,dn.StrictFunctionName):f(r.value)?(o=r,s=dn.StrictFunctionName):d(r.value)&&(o=r,s=dn.StrictReservedWord),A("("),!M(")"))for(l={};bn>mn&&(r=k(),t=ht(),pn?(f(r.value)&&(i=r,s=dn.StrictParamName),Object.prototype.hasOwnProperty.call(l,r.value)&&(i=r,s=dn.StrictParamDupe)):o||(f(r.value)?(o=r,s=dn.StrictParamName):d(r.value)?(o=r,s=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(l,r.value)&&(o=r,s=dn.StrictParamDupe)),c.push(t),l[t.name]=!0,!M(")"));)A(",");return A(")"),a=pn,n=Ft(),pn&&o&&L(o,s),pn&&i&&E(i,s),pn=a,{type:cn.FunctionDeclaration,id:e,params:c,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function Ht(){var e,t,n,r,i,o,s,a,l=null,c=[];if(D("function"),M("(")||(e=k(),l=ht(),pn?f(e.value)&&E(e,dn.StrictFunctionName):f(e.value)?(n=e,r=dn.StrictFunctionName):d(e.value)&&(n=e,r=dn.StrictReservedWord)),A("("),!M(")"))for(a={};bn>mn&&(e=k(),i=ht(),pn?(f(e.value)&&(t=e,r=dn.StrictParamName),Object.prototype.hasOwnProperty.call(a,e.value)&&(t=e,r=dn.StrictParamDupe)):n||(f(e.value)?(n=e,r=dn.StrictParamName):d(e.value)?(n=e,r=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,e.value)&&(n=e,r=dn.StrictParamDupe)),c.push(i),a[i.name]=!0,!M(")"));)A(",");return A(")"),s=pn,o=Ft(),pn&&n&&L(n,r),pn&&t&&E(t,r),pn=s,{type:cn.FunctionExpression,id:l,params:c,defaults:[],body:o,rest:null,generator:!1,expression:!1}}function jt(){var e=k();if(e.type===an.Keyword)switch(e.value){case"const":case"let":return vt(e.value);case"function":return Gt();default:return Pt()}return e.type!==an.EOF?Pt():void 0}function Rt(){for(var e,t,r,i,o=[];bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=jt(),o.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&E(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(;bn>mn&&(e=jt(),"undefined"!=typeof e);)o.push(e);return o}function _t(){var e;return pn=!1,e={type:cn.Program,body:Rt()}}function Bt(e,n,r,i,o){t("number"==typeof r,"Comment must have valid position"),xn.comments.length>0&&xn.comments[xn.comments.length-1].range[1]>r||xn.comments.push({type:e,value:n,range:[r,i],loc:o})}function zt(){var e,t,n,r,i,o;for(e="",i=!1,o=!1;bn>mn;)if(t=hn[mn],o)t=hn[mn++],a(t)?(n.end={line:gn,column:mn-vn-1},o=!1,Bt("Line",e,r,mn-1,n),"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn,e=""):mn>=bn?(o=!1,e+=t,n.end={line:gn,column:bn-vn},Bt("Line",e,r,bn,n)):e+=t;else if(i)a(t)?("\r"===t&&"\n"===hn[mn+1]?(++mn,e+="\r\n"):e+=t,++gn,++mn,vn=mn,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")):(t=hn[mn++],mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL"),e+=t,"*"===t&&(t=hn[mn],"/"===t&&(e=e.substr(0,e.length-1),i=!1,++mn,n.end={line:gn,column:mn-vn},Bt("Block",e,r,mn,n),e="")));else if("/"===t)if(t=hn[mn+1],"/"===t)n={start:{line:gn,column:mn-vn}},r=mn,mn+=2,o=!0,mn>=bn&&(n.end={line:gn,column:mn-vn},o=!1,Bt("Line",e,r,mn,n));else{if("*"!==t)break;r=mn,mn+=2,i=!0,n={start:{line:gn,column:mn-vn-2}},mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")}else if(s(t))++mn;else{if(!a(t))break;++mn,"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function Wt(){var e,t,n,r=[];for(e=0;e<xn.comments.length;++e)t=xn.comments[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.comments=r}function Vt(){var e,t,r,i,o;return p(),e=mn,t={start:{line:gn,column:mn-vn}},r=xn.advance(),t.end={line:gn,column:mn-vn},r.type!==an.EOF&&(i=[r.range[0],r.range[1]],o=n(r.range[0],r.range[1]),xn.tokens.push({type:ln[r.type],value:o,range:i,loc:t})),r}function Ut(){var e,t,n,r;return p(),e=mn,t={start:{line:gn,column:mn-vn}},n=xn.scanRegExp(),t.end={line:gn,column:mn-vn},xn.tokens.length>0&&(r=xn.tokens[xn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&xn.tokens.pop()),xn.tokens.push({type:"RegularExpression",value:n.literal,range:[e,mn],loc:t}),n}function qt(){var e,t,n,r=[];for(e=0;e<xn.tokens.length;++e)t=xn.tokens[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.tokens=r}function Kt(e){return{type:cn.Literal,value:e.value}}function Xt(e){return{type:cn.Literal,value:e.value,raw:n(e.range[0],e.range[1])}}function Jt(){var e={};return e.range=[mn,mn],e.loc={start:{line:gn,column:mn-vn},end:{line:gn,column:mn-vn}},e.end=function(){this.range[1]=mn,this.loc.end.line=gn,this.loc.end.column=mn-vn},e.applyGroup=function(e){xn.range&&(e.groupRange=[this.range[0],this.range[1]]),xn.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xn.range&&(e.range=[this.range[0],this.range[1]]),xn.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Qt(){var e,t;return p(),e=Jt(),A("("),t=ut(),A(")"),e.end(),e.applyGroup(t),t}function Yt(){var e,t;for(p(),e=Jt(),t=I("new")?q():B();M(".")||M("[");)M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function Zt(){var e,t;for(p(),e=Jt(),t=I("new")?q():B();M(".")||M("[")||M("(");)M("(")?(t={type:cn.CallExpression,callee:t,arguments:z()},e.end(),e.apply(t)):M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function en(e){var t,n,r;t="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(n in e)e.hasOwnProperty(n)&&"groupRange"!==n&&"groupLoc"!==n&&(r=e[n],t[n]=null===r||"object"!=typeof r||r instanceof RegExp?r:en(r));return t}function tn(e,t){return function(n){function r(e){return e.type===cn.LogicalExpression||e.type===cn.BinaryExpression}function i(n){var o,s;r(n.left)&&i(n.left),r(n.right)&&i(n.right),e&&(n.left.groupRange||n.right.groupRange?(o=n.left.groupRange?n.left.groupRange[0]:n.left.range[0],s=n.right.groupRange?n.right.groupRange[1]:n.right.range[1],n.range=[o,s]):"undefined"==typeof n.range&&(o=n.left.range[0],s=n.right.range[1],n.range=[o,s])),t&&(n.left.groupLoc||n.right.groupLoc?(o=n.left.groupLoc?n.left.groupLoc.start:n.left.loc.start,s=n.right.groupLoc?n.right.groupLoc.end:n.right.loc.end,n.loc={start:o,end:s}):"undefined"==typeof n.loc&&(n.loc={start:n.left.loc.start,end:n.right.loc.end}))
}return function(){var o,s;return p(),o=Jt(),s=n.apply(null,arguments),o.end(),e&&"undefined"==typeof s.range&&o.apply(s),t&&"undefined"==typeof s.loc&&o.apply(s),r(s)&&i(s),s}}}function nn(){var e;xn.comments&&(xn.skipComment=p,p=zt),xn.raw&&(xn.createLiteral=Kt,Kt=Xt),(xn.range||xn.loc)&&(xn.parseGroupExpression=_,xn.parseLeftHandSideExpression=X,xn.parseLeftHandSideExpressionAllowCall=K,_=Qt,X=Yt,K=Zt,e=tn(xn.range,xn.loc),xn.parseAdditiveExpression=Z,xn.parseAssignmentExpression=ct,xn.parseBitwiseANDExpression=rt,xn.parseBitwiseORExpression=ot,xn.parseBitwiseXORExpression=it,xn.parseBlock=ft,xn.parseFunctionSourceElements=Ft,xn.parseCatchClause=It,xn.parseComputedMember=U,xn.parseConditionalExpression=lt,xn.parseConstLetDeclaration=vt,xn.parseEqualityExpression=nt,xn.parseExpression=ut,xn.parseForVariableDeclaration=St,xn.parseFunctionDeclaration=Gt,xn.parseFunctionExpression=Ht,xn.parseLogicalANDExpression=st,xn.parseLogicalORExpression=at,xn.parseMultiplicativeExpression=Y,xn.parseNewExpression=q,xn.parseNonComputedProperty=W,xn.parseObjectProperty=j,xn.parseObjectPropertyKey=H,xn.parsePostfixExpression=J,xn.parsePrimaryExpression=B,xn.parseProgram=_t,xn.parsePropertyFunction=G,xn.parseRelationalExpression=tt,xn.parseStatement=Pt,xn.parseShiftExpression=et,xn.parseSwitchCase=At,xn.parseUnaryExpression=Q,xn.parseVariableDeclaration=pt,xn.parseVariableIdentifier=ht,Z=e(xn.parseAdditiveExpression),ct=e(xn.parseAssignmentExpression),rt=e(xn.parseBitwiseANDExpression),ot=e(xn.parseBitwiseORExpression),it=e(xn.parseBitwiseXORExpression),ft=e(xn.parseBlock),Ft=e(xn.parseFunctionSourceElements),It=e(xn.parseCatchClause),U=e(xn.parseComputedMember),lt=e(xn.parseConditionalExpression),vt=e(xn.parseConstLetDeclaration),nt=e(xn.parseEqualityExpression),ut=e(xn.parseExpression),St=e(xn.parseForVariableDeclaration),Gt=e(xn.parseFunctionDeclaration),Ht=e(xn.parseFunctionExpression),X=e(X),st=e(xn.parseLogicalANDExpression),at=e(xn.parseLogicalORExpression),Y=e(xn.parseMultiplicativeExpression),q=e(xn.parseNewExpression),W=e(xn.parseNonComputedProperty),j=e(xn.parseObjectProperty),H=e(xn.parseObjectPropertyKey),J=e(xn.parsePostfixExpression),B=e(xn.parsePrimaryExpression),_t=e(xn.parseProgram),G=e(xn.parsePropertyFunction),tt=e(xn.parseRelationalExpression),Pt=e(xn.parseStatement),et=e(xn.parseShiftExpression),At=e(xn.parseSwitchCase),Q=e(xn.parseUnaryExpression),pt=e(xn.parseVariableDeclaration),ht=e(xn.parseVariableIdentifier)),"undefined"!=typeof xn.tokens&&(xn.advance=C,xn.scanRegExp=w,C=Vt,w=Ut)}function rn(){"function"==typeof xn.skipComment&&(p=xn.skipComment),xn.raw&&(Kt=xn.createLiteral),(xn.range||xn.loc)&&(Z=xn.parseAdditiveExpression,ct=xn.parseAssignmentExpression,rt=xn.parseBitwiseANDExpression,ot=xn.parseBitwiseORExpression,it=xn.parseBitwiseXORExpression,ft=xn.parseBlock,Ft=xn.parseFunctionSourceElements,It=xn.parseCatchClause,U=xn.parseComputedMember,lt=xn.parseConditionalExpression,vt=xn.parseConstLetDeclaration,nt=xn.parseEqualityExpression,ut=xn.parseExpression,St=xn.parseForVariableDeclaration,Gt=xn.parseFunctionDeclaration,Ht=xn.parseFunctionExpression,_=xn.parseGroupExpression,X=xn.parseLeftHandSideExpression,K=xn.parseLeftHandSideExpressionAllowCall,st=xn.parseLogicalANDExpression,at=xn.parseLogicalORExpression,Y=xn.parseMultiplicativeExpression,q=xn.parseNewExpression,W=xn.parseNonComputedProperty,j=xn.parseObjectProperty,H=xn.parseObjectPropertyKey,B=xn.parsePrimaryExpression,J=xn.parsePostfixExpression,_t=xn.parseProgram,G=xn.parsePropertyFunction,tt=xn.parseRelationalExpression,Pt=xn.parseStatement,et=xn.parseShiftExpression,At=xn.parseSwitchCase,Q=xn.parseUnaryExpression,pt=xn.parseVariableDeclaration,ht=xn.parseVariableIdentifier),"function"==typeof xn.scanRegExp&&(C=xn.advance,w=xn.scanRegExp)}function on(e){var t,n=e.length,r=[];for(t=0;n>t;++t)r[t]=e.charAt(t);return r}function sn(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),hn=e,mn=0,gn=hn.length>0?1:0,vn=0,bn=hn.length,yn=null,wn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xn={},"undefined"!=typeof t&&(xn.range="boolean"==typeof t.range&&t.range,xn.loc="boolean"==typeof t.loc&&t.loc,xn.raw="boolean"==typeof t.raw&&t.raw,"boolean"==typeof t.tokens&&t.tokens&&(xn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(xn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(xn.errors=[])),bn>0&&"undefined"==typeof hn[0]&&(e instanceof String&&(hn=e.valueOf()),"undefined"==typeof hn[0]&&(hn=on(e))),nn();try{n=_t(),"undefined"!=typeof xn.comments&&(Wt(),n.comments=xn.comments),"undefined"!=typeof xn.tokens&&(qt(),n.tokens=xn.tokens),"undefined"!=typeof xn.errors&&(n.errors=xn.errors),(xn.range||xn.loc)&&(n.body=en(n.body))}catch(i){throw i}finally{rn(),xn={}}return n}var an,ln,cn,un,dn,fn,hn,pn,mn,gn,vn,bn,yn,wn,xn;an={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},ln={},ln[an.BooleanLiteral]="Boolean",ln[an.EOF]="<end>",ln[an.Identifier]="Identifier",ln[an.Keyword]="Keyword",ln[an.NullLiteral]="Null",ln[an.NumericLiteral]="Numeric",ln[an.Punctuator]="Punctuator",ln[an.StringLiteral]="String",cn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},un={Data:1,Get:2,Set:4},dn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},fn={NonAsciiIdentifierStart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),NonAsciiIdentifierPart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")},"undefined"==typeof"esprima"[0]&&(n=function(e,t){return hn.slice(e,t).join("")}),e.version="1.0.3",e.parse=sn,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in cn)cn.hasOwnProperty(e)&&(t[e]=cn[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(){function e(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),void 0):(e.attachEvent("on"+t,n),void 0)}function t(e){if("keypress"==e.type){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return w[e.which]?w[e.which]:x[e.which]?x[e.which]:String.fromCharCode(e.which).toLowerCase()}function n(e,t){return e.sort().join(",")===t.sort().join(",")}function r(e){e=e||{};var t,n=!1;for(t in L)e[t]?n=!0:L[t]=0;n||(N=!1)}function i(e,t,r,i,o,s){var a,l,u=[],d=r.type;if(!k[e])return[];for("keyup"==d&&c(e)&&(t=[e]),a=0;a<k[e].length;++a)if(l=k[e][a],(i||!l.seq||L[l.seq]==l.level)&&d==l.action&&("keypress"==d&&!r.metaKey&&!r.ctrlKey||n(t,l.modifiers))){var f=!i&&l.combo==o,h=i&&l.seq==i&&l.level==s;(f||h)&&k[e].splice(a,1),u.push(l)}return u}function o(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.ctrlKey&&t.push("ctrl"),e.metaKey&&t.push("meta"),t}function s(e,t,n){D.stopCallback(t,t.target||t.srcElement,n)||e(t,n)===!1&&(t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.returnValue=!1,t.cancelBubble=!0)}function a(e,t,n){var o,a=i(e,t,n),l={},u=0,d=!1;for(o=0;o<a.length;++o)a[o].seq&&(u=Math.max(u,a[o].level));for(o=0;o<a.length;++o)if(a[o].seq){if(a[o].level!=u)continue;d=!0,l[a[o].seq]=1,s(a[o].callback,n,a[o].combo)}else d||s(a[o].callback,n,a[o].combo);n.type!=N||c(e)||r(l)}function l(e){"number"!=typeof e.which&&(e.which=e.keyCode);var n=t(e);if(n)return"keyup"==e.type&&E===n?(E=!1,void 0):(D.handleKey(n,o(e),e),void 0)}function c(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function u(){clearTimeout(y),y=setTimeout(r,1e3)}function d(){if(!b){b={};for(var e in w)e>95&&112>e||w.hasOwnProperty(e)&&(b[w[e]]=e)}return b}function f(e,t,n){return n||(n=d()[e]?"keydown":"keypress"),"keypress"==n&&t.length&&(n="keydown"),n}function h(e,n,i,o){function a(t){return function(){N=t,++L[e],u()}}function l(n){s(i,n,e),"keyup"!==o&&(E=t(n)),setTimeout(r,10)}L[e]=0;for(var c=0;c<n.length;++c){var d=c+1===n.length,f=d?l:a(o||m(n[c+1]).action);g(n[c],f,o,e,c)}}function p(e){return"+"===e?["+"]:e.split("+")}function m(e,t){var n,r,i,o=[];for(n=p(e),i=0;i<n.length;++i)r=n[i],S[r]&&(r=S[r]),t&&"keypress"!=t&&C[r]&&(r=C[r],o.push("shift")),c(r)&&o.push(r);return t=f(r,o,t),{key:r,modifiers:o,action:t}}function g(e,t,n,r,o){T[e+":"+n]=t,e=e.replace(/\s+/g," ");var s,a=e.split(" ");return a.length>1?(h(e,a,t,n),void 0):(s=m(e,n),k[s.key]=k[s.key]||[],i(s.key,s.modifiers,{type:s.action},r,e,o),k[s.key][r?"unshift":"push"]({callback:t,modifiers:s.modifiers,action:s.action,seq:r,level:o,combo:e}),void 0)}function v(e,t,n){for(var r=0;r<e.length;++r)g(e[r],t,n)}for(var b,y,w={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},x={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},C={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},S={option:"alt",command:"meta","return":"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},k={},T={},L={},E=!1,N=!1,A=1;20>A;++A)w[111+A]="f"+A;for(A=0;9>=A;++A)w[A+96]=A;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var D={bind:function(e,t,n){return e=e instanceof Array?e:[e],v(e,t,n),this},unbind:function(e,t){return D.bind(e,function(){},t)},trigger:function(e,t){return T[e+":"+t]&&T[e+":"+t]({},e),this},reset:function(){return k={},T={},this},stopCallback:function(e,t){return(" "+t.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.contentEditable&&"true"==t.contentEditable},handleKey:a};window.Mousetrap=D,"function"==typeof define&&define.amd&&define(D)}();var Hogan={};!function(e,t){function n(e,t,n){var r;return t&&"object"==typeof t&&(null!=t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function r(e,t,n,r){function i(){}function o(){}i.prototype=e,o.prototype=e.subs;var s,a=new i;a.subs=new o,a.subsText={},a.ib();for(s in t)a.subs[s]=t[s],a.subsText[s]=r;for(s in n)a.partials[s]=n[s];return a}function i(e){return String(null===e||void 0===e?"":e)}function o(e){return e=i(e),d.test(e)?e.replace(s,"&amp;").replace(a,"&lt;").replace(l,"&gt;").replace(c,"&#39;").replace(u,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.ib()},e.Template.prototype={r:function(){return""},v:o,t:i,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}return i?(this.partials[e].base=i,n.subs&&(void 0===this.activeSub&&(t.stackText=this.text),i=r(i,n.subs,n.partials,t.stackText||this.text)),this.partials[e].instance=i,i):null},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!f(r))return n(e,t,this),void 0;for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,s){var a;return f(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,s)),a=!!e,!r&&a&&t&&t.push("object"==typeof e?e:t[t.length-1]),a)},d:function(e,t,r,i){var o,s=e.split("."),a=this.f(s[0],t,r,i),l=this.options.modelGet,c=null;if("."===e&&f(t[t.length-2]))a=t[t.length-1];else for(var u=1;u<s.length;u++)o=n(s[u],a,l),null!=o?(c=a,a=o):a="";return i&&!a?!1:(i||"function"!=typeof a||(t.push(c),a=this.mv(a,t,r),t.pop()),a)},f:function(e,t,r,i){for(var o=!1,s=null,a=!1,l=this.options.modelGet,c=t.length-1;c>=0;c--)if(s=t[c],o=n(e,s,l),null!=o){a=!0;break}return a?(i||"function"!=typeof o||(o=this.mv(o,t,r)),o):i?!1:""},ls:function(e,t,n,r,o){var s=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(i(e.call(t,r)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:t?function(e){this.buf.push(e)}:function(e){this.buf+=e},fl:t?function(){var e=this.buf.join("");return this.buf=[],e}:function(){var e=this.buf;return this.buf="",e},ib:function(){this.buf=t?[]:""},ms:function(e,t,n,r,i,o,s){var a,l=t[t.length-1],c=e.call(l);return"function"==typeof c?r?!0:(a=this.activeSub&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,n,a.substring(i,o),s)):c},mv:function(e,t,n){var r=t[t.length-1],o=e.call(r);return"function"==typeof o?this.ct(i(o.call(r)),r,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var s=/&/g,a=/</g,l=/>/g,c=/\'/g,u=/\"/g,d=/[&<>\"\']/,f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),jQuery.tablesorter.addParser({id:"size",is:function(e){return e.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(e){var t=["Bytes","KB","MB","GB","TB","PB"],n=e.trim().split(" ");return parseFloat(n.shift())*Math.pow(1024,_.indexOf(t,n.shift()))},type:"numeric"}),window.Genghis={Models:{},Collections:{},Views:{},Templates:{},defaults:{codeMirror:{mode:"application/json",lineNumbers:!0,tabSize:4,indentUnit:4,matchBrackets:!0}},boot:function(e){e+="/"==e.charAt(e.length-1)?"":"/",window.app=new Genghis.Views.App({baseUrl:e}),Backbone.history.start({pushState:!0,root:e})}},Genghis.version="2.3.11",Genghis.Templates.Alert=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="alert'),r.s(r.f("block",e,t,1),e,t,0,29,41,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" alert-block")}),e.pop()),r.b(" alert-"),r.b(r.v(r.f("level",e,t,0))),r.b('">'),r.b("\n"+n),r.b('    <a class="close" href="#">&times;</a>'),r.b("\n"+n),r.s(r.f("block",e,t,1),e,t,0,132,164,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("        <p>"),n.b(n.t(n.f("msg",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("block",e,t,1),e,t,1,0,0,"")||(r.b("        "),r.b(r.t(r.f("msg",e,t,0))),r.b("\n")),r.b("</div>"),r.fl()}}),Genghis.Templates.CollectionRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<td>"),r.b("\n"+n),r.b('    <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="documents value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="indexes has-details value">'),r.b(r.v(r.f("indexCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('    <div class="details" title="'),r.b(r.v(r.f("indexCount",e,t,0))),r.b(" Index"),r.s(r.f("indexesIsPlural",e,t,1),e,t,0,282,284,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("es")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("indexCount",e,t,1),e,t,0,334,501,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('            <ul class="index-details">'),r.b("\n"+n),r.s(r.f("indexes",e,t,1),e,t,0,404,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                    <li>"),n.b(n.t(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.b("            </ul>"),r.b("\n")}),e.pop()),r.s(r.f("indexCount",e,t,1),e,t,1,0,0,"")||(r.b("            <em>None.</em>"),r.b("\n")),r.b("    </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b('    <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('    <div class="details" title="Collection Stats">'),r.b("\n"+n),r.b('        <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,794,881,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b("                <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b("        </dl>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b('<td class="action-column">'),r.b("\n"+n),r.b('    <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Collections=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>documents</th>"),r.b("\n"+n),r.b("                <th>indexes</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b('    <div class="btn-group">'),r.b("\n"+n),r.b('        <button class="show btn">Add collection</button>'),r.b("\n"+n),r.b('        <button class="btn dropdown-toggle" data-toggle="dropdown">'),r.b("\n"+n),r.b('            <span class="caret"></span>'),r.b("\n"+n),r.b("        </button>"),r.b("\n"+n),r.b('        <ul class="dropdown-menu">'),r.b("\n"+n),r.b('            <li><a class="show" href="#">Add collection</a></li>'),r.b("\n"+n),r.b('            <li><a class="show show-gridfs" href="#">Add GridFS collection</a></li>'),r.b("\n"+n),r.b("        </ul>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add collection</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Confirm=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("header",e,t,1),e,t,0,13,148,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('  <div class="modal-header">'),r.b("\n"+n),r.b('    <button class="dismiss close" aria-hidden="true">&times;</button>'),r.b("\n"+n),r.b("    <h3>"),r.b(r.v(r.f("header",e,t,0))),r.b("</h3>"),r.b("\n"+n),r.b("  </div>"),r.b("\n")}),e.pop()),r.b("\n"+n),r.b('<div class="modal-body">'),r.b("\n"+n),r.s(r.f("body",e,t,1),e,t,0,201,228,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("    <p>"),n.b(n.t(n.f("body",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("confirmInput",e,t,1),e,t,0,261,333,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("    <div>"),r.b("\n"+n),r.b('      <input type="text" class="confirm-input">'),r.b("\n"+n),r.b("    </div>"),r.b("\n")}),e.pop()),r.b("</div>"),r.b("\n"+n),r.b("\n"+n),r.b("\n"+n),r.b('<div class="modal-footer">'),r.b("\n"+n),r.b('  <button class="dismiss btn" aria-hidden="true">'),r.b(r.v(r.f("dismissText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b('  <button class="confirm btn btn-primary"'),r.s(r.f("confirmInput",e,t,1),e,t,0,525,534,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b(">"),r.b(r.t(r.f("confirmText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.DatabaseRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <td colspan="4">'),r.b("\n"+n),r.b('        <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b("    <td>"),r.b("\n"+n),r.b('        <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="collections has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Collection"),r.s(r.f("isPlural",e,t,1),e,t,0,427,428,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")
}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,470,777,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,532,594,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,657,720,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b("                </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b("                <em>None.</em>"),r.b("\n")),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="Database Stats">'),r.b("\n"+n),r.b('            <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,1093,1192,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                    <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b("                    <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b("            </dl>"),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b('    <td class="action-column">'),r.b("\n"+n),r.b('        <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")),r.fl()}}),Genghis.Templates.Databases=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>collections</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b('    <button class="show btn">Add database</button>'),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add database</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Document=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header>"),r.b("\n"+n),r.b("    <h2>"),r.b("\n"+n),r.b("        "),r.b(r.v(r.d("model.prettyId",e,t,0))),r.b("\n"+n),r.s(r.d("model.prettyTime",e,t,1),e,t,0,78,184,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <small><time datetime="'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b("    </h2>"),r.b("\n"+n),r.b("</header>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.fl()}}),Genghis.Templates.DocumentView=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="well">'),r.b("\n"+n),r.b('    <div class="document-actions">'),r.b("\n"+n),r.s(r.f("isGridFile",e,t,1),e,t,0,79,189,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <a class="btn btn-small btn-primary grid-download" href="'),n.b(n.v(n.f("downloadUrl",e,t,0))),n.b('">Download</a>'),n.b("\n")}),e.pop()),r.s(r.f("isGridChunk",e,t,1),e,t,0,233,324,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <a class="btn btn-small grid-file" href="'),n.b(n.v(n.f("fileUrl",e,t,0))),n.b('">Grid File</a>'),n.b("\n")}),e.pop()),r.b('        <button class="btn btn-small btn-primary save">Save</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small edit">Edit</button>'),r.b("\n"+n),r.b('        <button class="btn btn-small btn-danger destroy">Delete</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("\n"+n),r.b("    <h3>"),r.b("\n"+n),r.b('        <a class="id" href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b(r.v(r.f("prettyId",e,t,0))),r.b("</a>"),r.b("\n"+n),r.s(r.f("prettyTime",e,t,1),e,t,0,707,801,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('            <small><time datetime="'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b("    </h3>"),r.b("\n"+n),r.b("\n"+n),r.b('    <div class="document"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Documents=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Documents</h2></header>"),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b('    <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b('    <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b('    <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b('    <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.KeyboardShortcuts=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="keyboard-shortcuts" class="modal">'),r.b("\n"+n),r.b('  <div class="modal-header">'),r.b("\n"+n),r.b('    <a href="#" class="close">&times;</a>'),r.b("\n"+n),r.b("    <h3>Keyboard shortcuts</h3>"),r.b("\n"+n),r.b("  </div>"),r.b("\n"+n),r.b('  <div class="modal-body">'),r.b("\n"+n),r.b("    <ul>"),r.b("\n"+n),r.b("      <li>"),r.b("\n"+n),r.b("        <h4>Global</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>?</kbd></dt>"),r.b("\n"+n),r.b("          <dd>This cheat sheet</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>s</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Go to servers</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>u</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Go up one level</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Servers</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New server</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Databases</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New database</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("      </li>"),r.b("\n"+n),r.b("      <li>"),r.b("\n"+n),r.b("        <h4>Collections</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New collection</dd>"),r.b("\n"+n),r.b("          <dt><kbd>shift</kbd> + <kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New GridFS collection</dd>"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("\n"+n),r.b("        <h4>Documents</h4>"),r.b("\n"+n),r.b("        <dl>"),r.b("\n"+n),r.b("          <dt><kbd>/</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Search</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b("          <dd>New document</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>n</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Next page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>p</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Previous page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("<!--"),r.b("\n"+n),r.b("          <dt><kbd>-</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Collapse all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>+</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Expand all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("          <dt><kbd>Alt+1</kbd> &ndash; <kbd>Alt+9</kbd></dt>"),r.b("\n"+n),r.b("          <dd>Expand to depth</dd>"),r.b("\n"+n),r.b("-->"),r.b("\n"+n),r.b("        </dl>"),r.b("\n"+n),r.b("      </li>"),r.b("\n"+n),r.b("    </ul>"),r.b("\n"+n),r.b("  </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Masthead=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="container">'),r.b("\n"+n),r.b("    "),r.s(r.f("heading",e,t,1),e,t,0,42,64,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("<h1>"),n.b(n.v(n.f("heading",e,t,0))),n.b("</h1>")}),e.pop()),r.b("\n"+n),r.b("    "),r.b(r.t(r.f("content",e,t,0))),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Nav=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<ul class="nav">'),r.b("\n"+n),r.b('	<li class="nav-section servers"><a class="btn-servers" href="'),r.b(r.v(r.f("baseUrl",e,t,0))),r.b('">Servers</a></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown server"></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown database"></li>'),r.b("\n"+n),r.b('	<li class="nav-section dropdown collection"></li>'),r.b("\n"+n),r.b("</ul>"),r.b("\n"),r.fl()}}),Genghis.Templates.NavSection=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<a href="#" class="dropdown-toggle" data-toggle="dropdown">'),r.b(r.v(r.f("id",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b('<ul class="dropdown-menu"></ul>'),r.b("\n"),r.fl()}}),Genghis.Templates.NavSectionMenu=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.d("collection.firstChildren",e,t,1),e,t,0,31,130,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <li><a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b("\n"+n),r.b("        "),r.b(r.v(r.f("id",e,t,0))),r.b("\n"+n),r.b("        <span>"),r.b(r.v(r.f("humanCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("    </a></li>"),r.b("\n")}),e.pop()),r.s(r.d("collection.hasMoreChildren",e,t,1),e,t,0,195,287,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <li class="divider"></li>'),r.b("\n"+n),r.b('    <li><a href="'),r.b(r.v(r.d("collection.url",e,t,0))),r.b('">More &raquo;</a></li>'),r.b("\n")}),e.pop()),r.fl()}}),Genghis.Templates.NewDocument=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-document" class="modal modal-editor">'),r.b("\n"+n),r.b('    <div class="modal-header">'),r.b("\n"+n),r.b('        <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b("        <h3>New Document</h3>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-body">'),r.b("\n"+n),r.b('        <div class="wrapper">'),r.b("\n"+n),r.b('            <textarea id="editor-new" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-footer">'),r.b("\n"+n),r.b('        <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-primary save">Save</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.NewGridFile=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-grid-file" class="modal modal-file-upload">'),r.b("\n"+n),r.b('    <div class="modal-header">'),r.b("\n"+n),r.b('        <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b("        <h3>Upload File</h3>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-body">'),r.b("\n"+n),r.b('        <div class="wrapper">'),r.b("\n"+n),r.b('            <textarea id="editor-upload" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b("        </div>"),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b('    <div class="modal-footer">'),r.b("\n"+n),r.b('        <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b('        <button class="btn btn-primary save">Upload</button>'),r.b("\n"+n),r.b("    </div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Pagination=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="pagination pagination-right">'),r.b("\n"+n),r.b("  <ul>"),r.b("\n"+n),r.b('    <li class="prev'),r.s(r.f("isFirst",e,t,1),e,t,0,82,91,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b("        <a"),r.s(r.f("isFirst",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("prevUrl",e,t,0))),r.b('"')),r.b(">&larr;</a>"),r.b("\n"+n),r.b("    </li>"),r.b("\n"+n),r.b("\n"+n),r.s(r.f("isStart",e,t,1),e,t,1,0,0,"")||(r.b('        <li class="first"><a href="'),r.b(r.v(r.f("firstUrl",e,t,0))),r.b('">1</a></li>'),r.b("\n"+n),r.b('        <li class="disabled"><a>&hellip;</a></li>'),r.b("\n")),r.b("\n"+n),r.b("\n"+n),r.s(r.f("pageUrls",e,t,1),e,t,0,361,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("        <li"),n.s(n.f("active",e,t,1),e,t,0,386,401,"{{ }}")&&(n.rs(e,t,function(e,t,n){n.b(' class="active"')}),e.pop()),n.b('><a href="'),n.b(n.v(n.f("url",e,t,0))),n.b('">'),n.b(n.v(n.f("index",e,t,0))),n.b("</a></li>"),n.b("\n")}),e.pop()),r.b("\n"+n),r.s(r.f("isEnd",e,t,1),e,t,1,0,0,"")||(r.b('        <li class="disabled"><a>&hellip;</a></li>'),r.b("\n"+n),r.b('        <li class="last"><a href="'),r.b(r.v(r.f("lastUrl",e,t,0))),r.b('">'),r.b(r.v(r.f("last",e,t,0))),r.b("</a></li>"),r.b("\n")),r.b("\n"+n),r.b('    <li class="next'),r.s(r.f("isLast",e,t,1),e,t,0,663,672,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b("        <a"),r.s(r.f("isLast",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("nextUrl",e,t,0))),r.b('"')),r.b(">&rarr;</a>"),r.b("\n"+n),r.b("    </li>"),r.b("\n"+n),r.b("  </ul>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Search=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<input id="navbar-query" class="search-query" name="q" type="text" value="'),r.b(r.v(r.f("query",e,t,0))),r.b('" />'),r.b("\n"+n),r.b('<div class="search-advanced">'),r.b("\n"+n),r.b('	<div class="well"></div>'),r.b("\n"+n),r.b('	<div class="form-actions">'),r.b("\n"+n),r.b('		<button class="search btn btn-primary">Search</button>'),r.b("\n"+n),r.b('		<button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("	</div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<span class="grippie"></span>'),r.b("\n"),r.fl()}}),Genghis.Templates.ServerRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b('    <td colspan="3">'),r.b("\n"+n),r.b('        <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b("    </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b("    <td>"),r.b("\n"+n),r.b('        <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="databases has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b('        <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Database"),r.s(r.f("isPlural",e,t,1),e,t,0,423,424,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,466,773,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b("                <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,528,590,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,653,716,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("                        <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b("                </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b("                <em>None.</em>"),r.b("\n")),r.b("        </div>"),r.b("\n"+n),r.b("    </td>"),r.b("\n"+n),r.b("    <td>"),r.b("\n"+n),r.b('        <span class="size value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("    </td>"),r.b("\n")),r.b('<td class="action-column">'),r.b("\n"+n),r.b("    "),r.s(r.f("editable",e,t,1),e,t,0,1026,1099,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('<button class="btn btn-mini btn-danger destroy">Remove from list</button>')}),e.pop()),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Servers=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Servers</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b("    <table>"),r.b("\n"+n),r.b("        <thead>"),r.b("\n"+n),r.b("            <tr>"),r.b("\n"+n),r.b("                <th>name</th>"),r.b("\n"+n),r.b("                <th>databases</th>"),r.b("\n"+n),r.b("                <th>size</th>"),r.b("\n"+n),r.b('                <th data-sorter="false"></th>'),r.b("\n"+n),r.b("            </tr>"),r.b("\n"+n),r.b("        </thead>"),r.b("\n"+n),r.b("        <tbody>"),r.b("\n"+n),r.b("        </tbody>"),r.b("\n"+n),r.b("    </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b('    <span class="input-append">'),r.b("\n"+n),r.b('        <input class="name span4" type="text" size="30"><span class="add-on help" title="user:pass@localhost:27017/db">?</span>'),r.b("\n"+n),r.b("    </span>"),r.b("\n"+n),r.b('    <button class="show btn">Add server</button>'),r.b("\n"+n),r.b('    <button class="add btn btn-primary">Add server</button>'),r.b("\n"+n),r.b('    <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Welcome=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<h2>Welcome to</h2>"),r.b("\n"+n),r.b("<h1>Genghis</h1>"),r.b("\n"+n),r.b("<p>The single-file MongoDB admin app.</p>"),r.b("\n"+n),r.b('<ul class="welcome-links">'),r.b("\n"+n),r.b('	<li><a href="http://genghisapp.com">Homepage</a></li>'),r.b("\n"+n),r.b('	<li><a href="https://github.com/bobthecow/genghis/issues">Issues</a></li>'),r.b("\n"+n),r.b("	<li>Version "),r.b(r.v(r.f("version",e,t,0))),r.b("</li>"),r.b("\n"+n),r.b("</ul>"),r.fl()}}),Genghis.Util={route:function(e){return e.replace(app.baseUrl,"").replace(/^\//,"")},parseQuery:function(e){var t={};return e.length&&_.each(e.split("&"),function(e){var n=e.split("="),r=n.shift();t[r]=decodeURIComponent(n.join("="))}),t},buildQuery:function(e){return _.map(e,function(e,t){return t+"="+e}).join("&")},humanizeSize:function(e){if(e==-0)return"n/a";var t=["Bytes","KB","MB","GB","TB","PB"],n=parseInt(Math.floor(Math.log(e)/Math.log(1024)),10),r=0===n?e/Math.pow(1024,n):(e/Math.pow(1024,n)).toFixed(1);return r=Genghis.Util.round(r,2).toString().replace(/\.0+$/,""),r+" "+t[n]},humanizeCount:function(e){var t="";return e=e||0,e>1e3&&(e=Math.floor(e/1e3),t=" k"),e>1e3&&(e=Math.floor(e/1e3),t=" M"),e>1e3?"...":e+t},round:function(e,t){if("undefined"==typeof t||0===+t)return Math.round(e);e=+e;var n=-1*+t;return isNaN(e)||"number"!=typeof n||n%1!==0?0/0:(e=e.toString().split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-n:-n))),e=e.toString().split("e"),+(e[0]+"e"+(e[1]?+e[1]+n:n)))},escape:function(e){return e?String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):void 0},attachCollapsers:function(e){$(".document",e).on("click","button,span.e",function(e){var t,n,r=$(this).parent(),i=r.children(".v"),o=/^\s*(name|title)\s*/i,s=i.hasClass("o"),a="";r.children(".e").length||(s&&(n=$(_.detect(i.find("> span.p > var"),function(e){return o.test($(e).text())})).siblings("span.v"),0===n.length&&(n=$(_.detect(i.find("> span.p > span.v"),function(e){var t=$(e);return t.hasClass("n")||t.hasClass("b")||t.hasClass("q")&&t.text().length<64}))),n&&n.length&&(t=n.siblings("var").text(),a=(t?t+": ":"")+Genghis.Util.escape(n.text()))),r.append('<span class="e">'+(s?"{":"[")+" <q>"+a+" &hellip;</q> "+(s?"}":"]")+"</span>")),r.toggleClass("collapsed"),e.preventDefault()})},base64Encode:function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=e.length,r="",i=0;n>i;i+=3){var o=[e.charCodeAt(i),e.charCodeAt(i+1),e.charCodeAt(i+2)],s=[o[0]>>2,(3&o[0])<<4|o[1]>>4,(15&o[1])<<2|o[2]>>6,63&o[2]];isNaN(o[1])&&(s[2]=64),isNaN(o[2])&&(s[3]=64),r+=t[s[0]]+t[s[1]]+t[s[2]]+t[s[3]]}return r},base64Decode:function(e){var t,n,r,i,o,s,a,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=e.length,u="";e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var d=0;c>d;)i=l.indexOf(e.charAt(d++)),o=l.indexOf(e.charAt(d++)),s=l.indexOf(e.charAt(d++)),a=l.indexOf(e.charAt(d++)),t=i<<2|o>>4,n=(15&o)<<4|s>>2,r=(3&s)<<6|a,u+=String.fromCharCode(t),64!=s&&(u+=String.fromCharCode(n)),64!=a&&(u+=String.fromCharCode(r));return u},base64ToHex:function(e){for(var t=[],n=atob(e.replace(/[=\s]+$/,"")),r=n.length,i=0;r>i;++i){var o=n.charCodeAt(i).toString(16);t.push(1===o.length?"0"+o:o)}return t.join("")},encodeDocumentId:function(e){return _.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"==e.$genghisType?e.$value:_.isUndefined(e)?void 0:"~"+this.base64Encode(JSON.stringify(e))},decodeDocumentId:function(e){return _.isString(e)&&"~"===e[0]?this.base64Decode(e.substr(1)):e},download:function(){var e;return function(t){e||(e=$("<iframe>",{id:"genghis-util-download"}).hide().appendTo("body")),e.attr("src",t)}}()},Genghis.JSON={parse:function(src){function addError(e,t){t.error||(error=new Error(e),error.loc=t.loc,error.node=t,t.error=error,errors.push(error))}function throwErrors(e){var t=new Error(""+e.length+" parse error"+(1===e.length?"":"s"));throw t.errors=e,t}function replaceCallExpression(src){function ObjectId(e){return{$genghisType:"ObjectId",$value:e?e.toString():null}}function GenghisDate(e){return new ISODate(e)}function ISODate(e){function t(e){function t(e,t){return t=t||2,(new Array(t+1).join("0")+e).substr(0-t)}function n(e){return e?"."+t(e,3):""}return e=new Date(e),"function"==typeof e.toISOString?e.toISOString():t(e.getUTCFullYear(),4)+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+n(e.getUTCMilliseconds())+"Z"}return{$genghisType:"ISODate",$value:e?t(e):null}}function DBRef(e,t){return{$ref:e,$id:t}}function GenghisRegExp(e,t){return{$genghisType:"RegExp",$value:{$pattern:e?e.toString():null,$flags:t?t.toString():null}}}function BinData(e,t){return{$genghisType:"BinData",$value:{$subtype:e,$binary:t}}}return src=src.replace(/^\s*(new\s+)?(Date|RegExp)(\b)/,"$1Genghis$2$3"),JSON.stringify(eval(src))}function replaceRegExpLiteral(e){var t="";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),replaceCallExpression("GenghisRegExp("+JSON.stringify(e.source)+', "'+t+'")')}function insertHelpers(e){function t(t){chunks[e.range[0]]=t;for(var n=e.range[0]+1;n<e.range[1];n++)chunks[n]=""}if(e.range)if(e.source=function(){return chunks.slice(e.range[0],e.range[1]).join("")},e.update&&_.isObject(e.update)){var n=e.update;Object.keys(n).forEach(function(e){t[e]=n[e]}),e.update=t}else e.update=t}function assertType(e,t){t.type!==e&&addError("Expecting "+e+" but found "+t.type,t)}"string"!=typeof src&&(src=String(src)),src="var __genghis_json__ = "+src;var opts={loc:!0,raw:!0,tokens:!0,tolerant:!0,range:!0},allowedCalls={ObjectId:!0,Date:!0,ISODate:!0,DBRef:!0,RegExp:!0,BinData:!0},allowedPropertyValues={Literal:!0,ObjectExpression:!0,ArrayExpression:!0,NewExpression:!0,CallExpression:!0,UnaryExpression:!0},errors=[],chunks=src.split(""),ast;try{ast=esprima.parse(src,opts)}catch(e){throwErrors([e])}ast.errors.length&&throwErrors(ast.errors);var node;return node=ast,assertType("Program",node),node=node.body,1!==node.length&&addError("Unexpected statement "+node[1].type,node[1]),node=node[0],assertType("VariableDeclaration",node),node=node.declarations,1!==node.length&&addError("Unexpected variable declarations "+node.length,node[1]),node=node[0],assertType("VariableDeclarator",node),node=node.init,"ObjectExpression"!==node.type&&addError("Expected an object expression, found "+node.type,node),errors.length&&throwErrors(errors),function t(e){switch(insertHelpers(e),Object.keys(e).forEach(function(n){var r=e[n];if(Array.isArray(r)){r.forEach(function(e){e&&"string"==typeof e.type&&t(e)})}else r&&"string"==typeof r.type&&(insertHelpers(e),t(r))}),e.type){case"NewExpression":case"CallExpression":e.callee&&!allowedCalls[e.callee.name]?addError("Bad call, bro: "+e.callee.name,e):e.update(replaceCallExpression(e.source()));break;case"Property":e.value&&!allowedPropertyValues[e.value.type]&&addError("Unexpected value: "+e.value.source(),e.value);break;case"Identifier":case"ArrayExpression":case"ObjectExpression":case"UnaryExpression":break;case"Literal":_.isRegExp(e.value)&&e.update(replaceRegExpLiteral(e.value));break;default:addError("Unexpected "+e.type,e)}}(node),errors.length&&throwErrors(errors),function(node){var __genghis_json__;return eval("__genghis_json__ = "+node.source()),__genghis_json__}(node)},stringify:function(e,t){return jQuery("<div>"+this.prettyPrint(e,t,!1)+"</div>").text()},prettyPrint:function(e,t,n){function r(e){function r(e,t){return i("SPAN",e,t)}function i(e,t,n){var r=document.createElement(e);return t&&(r.className=t),n&&("string"==typeof n&&(n=o(n)),r.appendChild(n)),r}function o(e){return document.createTextNode(e)}function s(e){var t,n=r("v q");return n.appendChild(o('"')),u.lastIndex=0,u.test(e)&&(e=e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),d.test(e)?(t=i("A","s"),t.href=e):t=r("s"),t.appendChild(o(e)),n.appendChild(t),n.appendChild(o('"')),n}function a(e){return(m.test(e)||!p.test(e))&&(e='"'+e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"'),i("VAR",!1,e)}function l(e,t,n){var i=r("call "+n);return i.appendChild(o(e+"(")),_.each(t,function(e,n){i.appendChild(e),n<t.length-1&&i.appendChild(o(", "))}),i.appendChild(o(")")),i}function c(e,t){var u,d,f,h,p,m,v,y,w=g,x="",C=t[e];switch(_.isObject(C)&&"function"==typeof C.toJSON&&(C=C.toJSON(e)),typeof C){case"string":return s(C);case"number":return r("v n",isFinite(C)?String(C):"null");case"boolean":return r("v b",String(C));case"object":if(_.isNull(C))return r("v z","null");if(Object.hasOwnProperty.call(C,"$genghisType"))switch(C.$genghisType){case"ObjectId":return l("ObjectId",[s(C.$value)],"oid");case"ISODate":return l("ISODate",[s(C.$value)],"date");case"RegExp":var S=C.$value.$pattern,k=C.$value.$flags||"";return r("v re","/"+S+"/"+k);case"BinData":return l("BinData",[r("n",String(C.$value.$subtype)),s(C.$value.$binary)],"bindata")}if(g+=b,_.isArray(C)){if(0===C.length)return g=w,r("v a","[]");for(m=r("v a"),n&&g&&(m.collapsible=!0,C.length>10&&(m.collapsed=!0)),m.appendChild(o(g?"[\n"+g:"[")),x=o(g?",\n"+g:","),h=C.length,u=0;h>u;u+=1)u>0&&m.appendChild(x.cloneNode(!1)),m.appendChild(c(u,C)||r("v z","null"));return m.appendChild(o(g?"\n"+w+"]":"]")),g=w,m}p=[];var T=o(g?": ":":"),L=!(!C.$ref||!C.$id);for(d in C)Object.hasOwnProperty.call(C,d)&&(f=c(d,C),f&&(y="p"+(f.collapsed?" collapsed":""),L&&("$ref"==d||"$id"==d||"$db"==d)&&(y=y+" ref-"+d.substr(1)),v=r(y),L&&"$id"==d&&v.setAttribute("data-document-id",Genghis.Util.encodeDocumentId(C[d])),f.collapsible&&v.appendChild(i("button")),v.appendChild(a(d)),v.appendChild(T.cloneNode(!1)),v.appendChild(f),f.collapsed&&(child=r("e"),child.appendChild(o("[ ")),child.appendChild(i("Q",!1,o(" \u2026"))),child.appendChild(o(" ]")),v.appendChild(child)),p.push(v)));if(y="v o",0===p.length)return g=w,r(y,o("{}"));for(L&&(y+=" ref"),m=r(y),m.collapsible=!!n,m.appendChild(o(g?"{\n"+g:"{")),x=o(g?",\n"+g:","),h=p.length,u=0;u<p.length;u++)u>0&&m.appendChild(x.cloneNode(!0)),m.appendChild(p[u]);return m.appendChild(o(g?"\n"+w+"}":"}")),g=w,m}}var u=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,d=/^https?:\/\/[^\s]+$/,f="$A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",h="0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",p=RegExp("^["+f+"]["+f+h+"]*$"),m=/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/,g="",b=t===!1?"":"    ",y={"\b":"\\b","	":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
return g="",v=c("_",{_:e}).innerHTML}return n=n!==!1,r(e)},normalize:function(e,t){return Genghis.JSON.stringify(Genghis.JSON.parse(e),t)}},Genghis.Collections.BaseCollection=Backbone.Collection.extend({firstChildren:function(){return this.collection.toArray().slice(0,10)},hasMoreChildren:function(){return this.collection.length>10}}),Genghis.Models.BaseModel=Backbone.Model.extend({name:function(){return this.get("name")},count:function(){return this.get("count")},humanCount:function(){return Genghis.Util.humanizeCount(this.get("count")||0)},isPlural:function(){return 1!==this.get("count")},humanSize:function(){var e=this.get("size");return e?Genghis.Util.humanizeSize(e):void 0},hasMoreChildren:function(){return this.get("count")>15}}),Genghis.Views.BaseDocument=Backbone.View.extend({errorLines:[],clearErrors:function(){var e=this.editor;this.getErrorBlock().html(""),_.each(this.errorLines,function(t){e.removeLineClass(t,"background","error-line")}),this.errorLines=[]},getEditorValue:function(){this.clearErrors();var e=this.getErrorBlock(),t=this.editor,n=this.errorLines;try{return Genghis.JSON.parse(t.getValue())}catch(r){_.each(r.errors||[r],function(r){var i=r.message;r.lineNumber&&!/Line \d+/i.test(i)&&(i="Line "+r.lineNumber+": "+r.message);var o=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:i,block:!0})});e.append(o.render().el),r.lineNumber&&n.push(t.addLineClass(r.lineNumber-1,"background","error-line"))})}return!1}}),Genghis.Views.BaseNewDocument=Genghis.Views.BaseDocument.extend({initialize:function(){_.bindAll(this,"render","getTextArea","show","refreshEditor","closeModal","cancelEdit","saveDocument","showServerError"),this.render()},render:function(){this.$el=$(this.template.render()).hide().appendTo("body"),this.el=this.$el[0],this.modal=this.$el.modal({backdrop:"static",show:!1,keyboard:!1});var e=this.$(".wrapper");return this.editor=CodeMirror.fromTextArea(this.getTextArea(),_.extend({},Genghis.defaults.codeMirror,{extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),$(window).resize(_.throttle(this.refreshEditor,100)),this.modal.bind("hide",this.cancelEdit),this.modal.bind("shown",this.refreshEditor),this.modal.find("button.cancel").bind("click",this.closeModal),this.modal.find("button.save").bind("click",this.saveDocument),this},refreshEditor:function(){this.editor.refresh(),this.editor.focus()},closeModal:function(){this.modal.modal("hide")},cancelEdit:function(){this.editor.setValue("")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.$(".modal-body"))),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)}}),Genghis.Views.BaseRow=Backbone.View.extend({tagName:"tr",events:{"click a.name":"navigate","click button.destroy":"destroy"},initialize:function(){_.bindAll(this,"render","navigate","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)).toggleClass("error",!!this.model.get("error")).find(".label[title]").tooltip({placement:"bottom"}),this.$(".has-details").popover({html:!0,content:function(){return $(this).siblings(".details").html()},title:function(){return $(this).siblings(".details").attr("title")},trigger:"manual"}).hoverIntent(function(){$(this).popover("show")},function(){$(this).popover("hide")}),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},remove:function(){this.$el.remove()},isParanoid:!1,destroy:function(){var e=this.model,t=e.has("name")?e.get("name"):"";if(this.isParanoid){if(!t)throw"Unable to confirm destruction without a confirmation string.";new Genghis.Views.Confirm({header:"Deleting is forever.",body:"Type <strong>"+t+"</strong> to continue:",confirmInput:t,confirmText:"Delete "+t+" forever",confirm:function(){e.destroy()}})}else{var n={confirmText:this.destroyConfirmButton(t),confirm:function(){e.destroy()}};this.destroyConfirmText&&(n.body=this.destroyConfirmText(t)),new Genghis.Views.Confirm(n)}},destroyConfirmButton:function(e){return"<strong>Yes</strong>, delete "+e+" forever"}}),Genghis.Views.BaseSection=Backbone.View.extend({events:{"click .add-form button.show":"showAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"render","updateTitle","showAddForm","submitAddForm","closeAddForm","updateOnKeyup","addModel","addModelAndUpdate","addAll"),this.model&&this.model.bind("change",this.updateTitle),this.collection&&(this.collection.bind("reset",this.render),this.collection.bind("add",this.addModelAndUpdate)),this.render()},render:function(){return this.$el.html(this.template.render({title:this.formatTitle(this.model)})),this.addForm=this.$(".add-form"),this.addButton=this.$(".add-form button.add"),this.addInput=this.$(".add-form input"),this.cancelButton=this.$(".add-form button.cancel"),this.addAll(),this.$("table").tablesorter({textExtraction:function(e){return $(".value",e).text()||$(e).text()}}),this.collection.size()&&this.$("table").trigger("sorton",[[[0,0]]]),this},updateTitle:function(){this.$("> header h2").text(this.formatTitle(this.model))},showAddForm:function(e){e&&e.preventDefault()&&e.preventDefault(),this.addForm.removeClass("inactive"),this.addInput.select().focus()},submitAddForm:function(){this.collection.create({name:this.addInput.val()},{wait:!0,success:this.closeAddForm,error:function(e,t){window.app.alerts.handleError(t)}})},closeAddForm:function(){this.addForm.addClass("inactive"),this.addInput.val("")},updateOnKeyup:function(e){13==e.keyCode&&this.submitAddForm(),27==e.keyCode&&this.closeAddForm()},addModel:function(e){var t=new this.rowView({model:e});this.$("table tbody").append(t.render().el)},addModelAndUpdate:function(e){this.addModel(e),this.$("table").trigger("update")},addAll:function(){this.$("table tbody").html(""),this.collection.each(this.addModel),this.$el.removeClass("spinning")},show:function(){Mousetrap.bind("c",this.showAddForm),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Models.Alert=Backbone.Model.extend({defaults:{level:"warning",block:!1},block:function(){return!!this.get("block")},level:function(){return this.get("level")},msg:function(){return this.get("msg")}}),Genghis.Models.Collection=Genghis.Models.BaseModel.extend({indexesIsPlural:function(){return 1!==this.indexCount()},indexCount:function(){return(this.get("indexes")||[]).length},indexes:function(){return _.map(this.get("indexes"),function(e){return Genghis.JSON.prettyPrint(e.key)})},isGridCollection:function(){return/\.files$/.test(this.get("name"))},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.storageSize||0)+(e.totalIndexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Padding factor",value:t.paddingFactor||"n/a"},{name:"Data size",value:e(t.size||0)},{name:"Index size",value:e(t.totalIndexSize||0)},{name:"Storage size",value:e(t.storageSize||0)}]:void 0}}),Genghis.Models.Database=Genghis.Models.BaseModel.extend({firstChildren:function(){return _.first(this.get("collections")||[],15)},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.fileSize||0)+(e.indexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Data size",value:e(t.dataSize||0)},{name:"Index size",value:e(t.indexSize||0)},{name:"Storage size",value:e(t.fileSize||0)}]:void 0},error:function(){return this.get("error")}}),Genghis.Models.Document=Backbone.Model.extend({idAttribute:null,initialize:function(){_.bindAll(this,"prettyId","prettyTime","prettyPrint","JSONish","isGridFile","isGridChunk","downloadUrl","fileUrl")},parse:function(e){var t=Genghis.Util.encodeDocumentId(e._id);return t&&(this.id=t),e},url:function(){var e=function(e){return e&&e.url?_.isFunction(e.url)?e.url():e.url:null},t=e(this.collection)||this.urlRoot||urlError();return t=t.split("?").shift(),this.isNew()?t:t+("/"==t.charAt(t.length-1)?"":"/")+encodeURIComponent(this.id)},prettyId:function(){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType"))switch(e.$genghisType){case"ObjectId":return e.$value;case"BinData":if(3==e.$value.$subtype){var t=/^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/i,n=Genghis.Util.base64ToHex(e.$value.$binary);if(t.test(n))return n.replace(t,"$1-$2-$3-$4-$5")}return e.$value.$binary.replace(/\=+$/,"")}return Genghis.JSON.stringify(e,!1)},prettyTime:function(){if(!this.collection||this.collection.guessCreationTime){if("undefined"==typeof this._prettyTime){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"===e.$genghisType&&24==e.$value.length){var t=new Date;t.setTime(1e3*parseInt(e.$value.substring(0,8),16)),this._prettyTime=t.toUTCString()}}return this._prettyTime}},prettyPrint:function(){return Genghis.JSON.prettyPrint(this.toJSON())},JSONish:function(){return Genghis.JSON.stringify(this.toJSON())},isGridFile:function(){return this.get("chunkSize")&&/\.files\/documents\//.test(this.url())},isGridChunk:function(){return this.get("files_id")&&/\.chunks\/documents\//.test(this.url())},downloadUrl:function(){if(!this.isGridFile())throw"Not a GridFS file.";return this.url().replace(/\.files\/documents\//,".files/files/")},fileUrl:function(){if(!this.isGridChunk())throw"Not a GridFS chunk.";return this.url().replace(/\.chunks\/documents\//,".files/documents/").replace(this.id,Genghis.Util.encodeDocumentId(this.get("files_id")))}}),Genghis.Models.Pagination=Backbone.Model.extend({defaults:{page:1,pages:1,limit:50,count:0,total:0},initialize:function(){_.bindAll(this,"decrementTotal")},decrementTotal:function(){this.set({total:this.get("total")-1,count:this.get("count")-1})}}),Genghis.Models.Selection=Backbone.Model.extend({defaults:{server:null,database:null,collection:null,query:null,page:null},initialize:function(){_.bindAll(this,"select","update","nextPage","previousPage"),this.bind("change",this.update),this.pagination=new Genghis.Models.Pagination,this.servers=new Genghis.Collections.Servers,this.currentServer=new Genghis.Models.Server,this.databases=new Genghis.Collections.Databases,this.currentDatabase=new Genghis.Models.Database,this.collections=new Genghis.Collections.Collections,this.currentCollection=new Genghis.Models.Collection,this.documents=new Genghis.Collections.Documents,this.currentDocument=new Genghis.Models.Document},select:function(e,t,n,r,i,o){this.set({server:e||null,database:t||null,collection:n||null,document:r||null,query:i||null,page:o||null})},update:function(){function e(e,t){if(404!==t.status){try{data=JSON.parse(t.responseText)}catch(n){data={}}app.alerts.create({msg:data.error||"Unknown error",level:"error",block:!0})}}function t(t,n,r){return n=n||"Not Found",r=r||"Please try again.",function(t,i){switch(i.status){case 404:app.showSection(),app.showMasthead("404: "+n,"<p>"+r+"</p>",{error:!0});break;default:e(t,i)}}}var n=this.get("server"),r=this.get("database"),i=this.get("collection"),o=this.get("document"),s=this.get("query"),a=this.get("page"),l=app.baseUrl,c={};if(l+="servers",this.servers.url=l,this.servers.fetch({reset:!0,error:e}),n?(l=l+"/"+encodeURIComponent(n),this.currentServer.url=l,this.currentServer.fetch({reset:!0,error:t("databases","Server Not Found")}),l+="/databases",this.databases.url=l,this.databases.fetch({reset:!0,error:e})):(this.currentServer.clear(),this.databases.reset()),r?(l=l+"/"+encodeURIComponent(r),this.currentDatabase.url=l,this.currentDatabase.fetch({reset:!0,error:t("collections","Database Not Found")}),l+="/collections",this.collections.url=l,this.collections.fetch({reset:!0,error:e})):(this.currentDatabase.clear(),this.collections.reset()),i){l=l+"/"+encodeURIComponent(i),this.currentCollection.url=l,this.currentCollection.fetch({reset:!0,error:t("documents","Collection Not Found")}),l+="/documents";var u="";(s||a)&&(s&&(c.q=encodeURIComponent(JSON.stringify(Genghis.JSON.parse(s)))),a&&(c.page=encodeURIComponent(a)),u="?"+Genghis.Util.buildQuery(c)),this.documents.url=l+u,this.documents.fetch({reset:!0,error:e})}else this.currentCollection.clear(),this.documents.reset();o&&(this.currentDocument.clear({silent:!0}),this.currentDocument.id=o,this.currentDocument.urlRoot=l,this.currentDocument.fetch({reset:!0,error:t("document","Document Not Found","But I&#146;m sure there are plenty of other nice documents out there&hellip;")}))},nextPage:function(){return 1+(this.get("page")||1)},previousPage:function(){return Math.max(1,(this.get("page")||1)-1)}}),Genghis.Models.Server=Genghis.Models.BaseModel.extend({editable:function(){return!!this.get("editable")},firstChildren:function(){return _.first(this.get("databases")||[],15)},error:function(){return this.get("error")}}),Genghis.Collections.Alerts=Backbone.Collection.extend({model:Genghis.Models.Alert,initialize:function(){_.bindAll(this,"handleError")},handleError:function(e){if(0!==e.readyState){try{data=JSON.parse(e.responseText)}catch(t){data={error:e.responseText}}msg=data.error||"<strong>FAIL</strong> An unexpected server error has occurred.",this.add({level:"error",msg:msg,block:!msg.search(/<(p|ul|ol|div)[ >]/)})}}}),Genghis.Collections.Collections=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Collection}),Genghis.Collections.Databases=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Database}),Genghis.Collections.Documents=Backbone.Collection.extend({model:Genghis.Models.Document,parse:function(e){return app.selection.pagination.set({page:e.page,pages:e.pages,count:e.documents.length,total:e.count}),this.guessCreationTime=_.all(e.documents,function(e){var t=e._id||null;if(!_.isObject(t)||"ObjectId"!=t.$genghisType)return!0;if(24!=t.$value.length)return!1;var n=1e3*parseInt(t.$value.substring(0,8),16);return n>this.start&&n<this.end},{start:1251388342e3,end:(new Date).getTime()+1728e5}),e.documents}}),Genghis.Collections.Servers=Backbone.Collection.extend({model:Genghis.Models.Server,firstChildren:function(){return this.collection.reject(function(e){return e.has("error")}).slice(0,10)},hasMoreChildren:function(){return this.collection.length>10||this.collection.detect(function(e){return e.has("error")})}}),Genghis.Views.Alert=Backbone.View.extend({tagName:"div",template:Genghis.Templates.Alert,events:{"click a.close":"destroy"},initialize:function(){_.bindAll(this,"render","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),this},destroy:function(){this.model.destroy()},remove:function(){this.$el.remove()}}),Genghis.Views.Alerts=Backbone.View.extend({el:"aside#alerts",initialize:function(){_.bindAll(this,"render","addModel"),this.collection.bind("reset",this.render),this.collection.bind("add",this.addModel)},render:function(){return this.$el.html(""),this},addModel:function(e){var t=new Genghis.Views.Alert({model:e});this.$el.append(t.render().el)}}),Genghis.Views.App=Backbone.View.extend({el:"section#genghis",initialize:function(){_.bindAll(this,"showMasthead","removeMasthead","showSection");var e=this.baseUrl=this.options.baseUrl,t=this.selection=new Genghis.Models.Selection,n=this.alerts=new Genghis.Collections.Alerts,r=this.router=new Genghis.Router;this.navbarView=new Genghis.Views.Navbar({model:t,baseUrl:e,router:r}),this.alertsView=new Genghis.Views.Alerts({collection:n}),this.keyboardShortcutsView=new Genghis.Views.KeyboardShortcuts,this.serversView=new Genghis.Views.Servers({collection:t.servers}),this.databasesView=new Genghis.Views.Databases({model:t.currentServer,collection:t.databases}),this.collectionsView=new Genghis.Views.Collections({model:t.currentDatabase,collection:t.collections}),this.documentsView=new Genghis.Views.Documents({model:t.currentCollection,collection:t.documents,pagination:t.pagination}),this.documentView=new Genghis.Views.Document({model:t.currentDocument}),this.sections={servers:this.serversView,databases:this.databasesView,collections:this.collectionsView,documents:this.documentsView,document:this.documentView},$.getJSON(this.baseUrl+"check-status").error(n.handleError).success(function(e){_.each(e.alerts,function(e){n.add(_.extend({block:!e.msg.search(/<(p|ul|ol|div)[ >]/i)},e))})}),_.defer(function(){t.trigger("change")})},showMasthead:function(e,t,n){this.removeMasthead(!0),mastheadView=new Genghis.Views.Masthead(_.extend(n||{},{heading:e,content:t||""}))},removeMasthead:function(e){var t=$("header.masthead");e||(t=t.not(".sticky")),t.remove()},showSection:function(e){var t=e&&_.has(this.sections,e);this.removeMasthead(),"servers"==e&&this.showWelcome(),$("body").toggleClass("has-section",t),_.each(this.sections,function(t,n){n!=e&&t.hide()}),t&&this.sections[e].show()},showWelcome:_.once(function(){this.showMasthead("",Genghis.Templates.Welcome.render({version:Genghis.version}),{epic:!0,className:"masthead welcome"})})}),Genghis.Views.CollectionRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.CollectionRow,isParanoid:!0}),Genghis.Views.Collections=Genghis.Views.BaseSection.extend({el:"section#collections",template:Genghis.Templates.Collections,rowView:Genghis.Views.CollectionRow,events:{"click .add-form button.show":"showAddForm","click .add-form a.show":"showAddForm","click .add-form a.show-gridfs":"showGridFSAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"showGridFSAddForm"),Genghis.Views.BaseSection.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),this.$(".dropdown-toggle").dropdown(),this},formatTitle:function(e){return e.id?e.id+" Collections":"Collections"},submitAddForm:function(){var e=this.addInput.val().replace(/^\s+/,"").replace(/\s+$/,"");if(""===e)return window.app.alerts.add({msg:"Please enter a valid collection name."}),void 0;if(this.addButton.hasClass("add-gridfs")){e=e.replace(/\.(files|chunks)$/,"");var t=_.after(2,this.closeAddForm);this.collection.create({name:e+".files"},{wait:!0,success:t,error:function(e,t){window.app.alerts.handleError(t)}}),this.collection.create({name:e+".chunks"},{wait:!0,success:t,error:function(e,t){window.app.alerts.handleError(t)}})}else this.collection.create({name:e},{wait:!0,success:this.closeAddForm,error:function(e,t){window.app.alerts.handleError(t)}})},showAddForm:function(){var e=this.$(".input-wrapper");e.length&&e.replaceWith(e.find("input")),this.addButton.removeClass("add-gridfs").text("Add collection"),Genghis.Views.BaseSection.prototype.showAddForm.apply(this,arguments)},showGridFSAddForm:function(e){e&&e.preventDefault&&e.preventDefault(),0===this.$(".input-wrapper").length&&(this.addInput.wrap('<div class="input-wrapper input-append">'),$('<span class="add-on">.files</span>').insertAfter(this.addInput)),this.addButton.addClass("add-gridfs").text("Add GridFS collection"),this.addForm.removeClass("inactive"),""===this.addInput.val()&&this.addInput.val("fs"),this.addInput.select().focus()},show:function(){Mousetrap.bind("shift+c",this.showGridFSAddForm),Genghis.Views.BaseSection.prototype.show.apply(this,arguments)},hide:function(){Mousetrap.unbind("shift+c"),Genghis.Views.BaseSection.prototype.hide.apply(this,arguments)}}),Genghis.Views.Confirm=Backbone.View.extend({className:"modal confirm-modal",template:Genghis.Templates.Confirm,events:{"click button.dismiss":"dismiss","click button.confirm":"confirm","keyup .confirm-input":"validateInput"},defaults:{header:null,body:"Really? There is no undo.",confirmText:"Okay",dismissText:"Cancel"},initialize:function(){_.bindAll(this,"render","confirm","validateInput","dismiss","remove"),this.onConfirm=this.options.confirm||function(){},this.confirmInput=this.options.confirmInput,this.modalOptions=_.pick(this.options,"backdrop","keyboard"),this.renderContext=_.defaults(_.pick(this.options,"header","body","confirmText","confirmInput","dismissText"),this.defaults),this.options.show!==!1&&this.render()},render:function(){var e=this.$el.html(this.template.render(this.renderContext));return this.confirmInput&&e.on("shown",function(){e.find(".confirm-input").focus()}),e.modal(this.modalOptions),this},confirm:function(){this.onConfirm(),this.dismiss()},validateInput:function(e){var t=this.$("button.confirm");$(e.target).val()==this.confirmInput?(t.removeAttr("disabled"),13==e.keyCode&&(e.preventDefault(),t.click())):t.attr("disabled",!0)},dismiss:function(){this.$el.on("hidden",this.remove).modal("hide")},remove:function(){this.$el.remove()}}),Genghis.Views.DatabaseRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.DatabaseRow,isParanoid:!0}),Genghis.Views.Databases=Genghis.Views.BaseSection.extend({el:"section#databases",template:Genghis.Templates.Databases,rowView:Genghis.Views.DatabaseRow,formatTitle:function(e){return e.id?e.id+" Databases":"Databases"}}),Genghis.Views.Document=Backbone.View.extend({el:"section#document",template:Genghis.Templates.Document,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e=new Genghis.Views.DocumentView({model:this.model});return this.$el.removeClass("spinning").html(this.template.render({model:this.model})),this.$(".content").html(e.render().el),this},show:function(){$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentView=Genghis.Views.BaseDocument.extend({tagName:"article",template:Genghis.Templates.DocumentView,events:{"click a.id":"navigate","click button.edit":"openEditDialog","click button.save":"saveDocument","click button.cancel":"cancelEdit","click button.destroy":"destroy","click a.grid-download":"download","click a.grid-file":"navigate","click .ref .ref-ref .v .s":"navigateColl","click .ref .ref-db .v .s":"navigateDb","click .ref .ref-id .v .s, .ref .ref-id .v.n":"navigateId"},initialize:function(){_.bindAll(this,"render","updateDocument","navigate","openEditDialog","cancelEdit","saveDocument","destroy","remove","download","navigateColl","navigateDb","navigateId","showServerError"),this.model.bind("change",this.updateDocument),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),Genghis.Util.attachCollapsers(this.el),setTimeout(this.updateDocument,1),this},updateDocument:function(){this.$(".document").html("").append(this.model.prettyPrint()).show()},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateDb:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db .v .s").text();app.router.redirectToDatabase(app.selection.currentServer.id,n)},navigateColl:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db  .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text();app.router.redirectToCollection(app.selection.currentServer.id,n,r)},navigateId:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db  .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text()||app.selection.currentCollection.id,i=t.find(".ref-id").attr("data-document-id");app.router.redirectToDocument(app.selection.currentServer.id,n,r,encodeURIComponent(i))},openEditDialog:function(){var e=this.$(".well"),t=Math.max(180,Math.min(600,e.height()+40)),n="editor-"+this.model.id.replace("~","-"),r=$('<textarea id="'+n+'"></textarea>').text(this.model.JSONish()).appendTo(e);this.$(".document").hide();var i=this.$el.addClass("edit");this.editor=CodeMirror.fromTextArea(r[0],_.extend({},Genghis.defaults.codeMirror,{autofocus:!0,extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){i.addClass("focused")}),this.editor.on("blur",function(){i.removeClass("focused")}),this.editor.setSize(null,t),r.resize(_.throttle(this.editor.refresh,100))},cancelEdit:function(){this.$el.removeClass("edit focused"),this.editor.toTextArea(),this.$("textarea").remove(),this.updateDocument(),this.$(".well").height("auto")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.el)),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.showServerError;this.model.clear({silent:!0}),this.model.save(e,{wait:!0,success:this.cancelEdit,error:function(e,n){var r;try{r=JSON.parse(n.responseText).error}catch(i){}t(r||"Error updating document.")}})}},destroy:function(){var e=this.model,t=this.model.isGridFile(),n=t?"file":"document";t&&(this.model.url=this.model.url().replace(".files/documents/",".files/files/")),new Genghis.Views.Confirm({body:"<strong>Really?</strong> "+(t?"This will delete all GridFS chunks as well. <br><br>":"")+"There is no undo.",confirmText:"<strong>Yes</strong>, delete "+n+" forever",confirm:function(){var t=app.selection;e.destroy({wait:!0,error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}app.alerts.create({level:"error",msg:r||"Error deleting "+n+"."})},success:function(){t.pagination.decrementTotal(),t.get("document")&&app.router.redirectTo(t.get("server"),t.get("database"),t.get("collection"),null,t.get("query"))}})}})},remove:function(){this.$el.remove()},download:function(e){Genghis.Util.download(this.model.downloadUrl()),e.preventDefault()}}),Genghis.Views.Documents=Backbone.View.extend({el:"section#documents",template:Genghis.Templates.Documents,events:{"click     button.add-document":"createDocument","dragover  button.file-upload":"dragGridFile","dragleave button.file-upload":"dragLeave","drop      button.file-upload":"dropGridFile"},initialize:function(){_.bindAll(this,"render","addAll","addDocument","createDocument","dragGridFile","dragLeave","dropGridFile"),this.pagination=this.options.pagination,this.collection.bind("reset",this.addAll,this),this.collection.bind("add",this.addDocument,this),this.render()},render:function(){return this.$el.html(this.template.render({})),this.headerView=new Genghis.Views.DocumentsHeader({model:this.pagination}),this.paginationView=new Genghis.Views.Pagination({el:this.$(".pagination-wrapper"),model:this.pagination,collection:this.collection}),this.addAll(),this},addAll:function(){this.$(".content").html(""),this.$("button.add-document").text(this.model.isGridCollection()?"Upload file":"Add document").toggleClass("file-upload",this.model.isGridCollection()),this.collection.each(this.addDocument),this.$el.removeClass("spinning")},addDocument:function(e){var t=new Genghis.Views.DocumentView({model:e});this.$(".content").append(t.render().el)},createDocument:function(e){if(e&&e.preventDefault&&e.preventDefault(),this.model.isGridCollection()){if(!Modernizr.filereader)return app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0;this.getNewGridFileView().show()}else this.getNewDocumentView().show()},dragGridFile:function(e){e.stopPropagation(),e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="copy",$(e.target).addClass("active")},dragLeave:function(e){$(e.target).removeClass("active")},dropGridFile:function(e){return e.stopPropagation(),e.preventDefault(),$(e.target).removeClass("active"),Modernizr.filereader?(this.getNewGridFileView().showMetadata(e.originalEvent.dataTransfer.files[0]),void 0):(app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0)},getNewDocumentView:function(){return this.newDocumentView||(this.newDocumentView=new Genghis.Views.NewDocument({collection:this.collection})),this.newDocumentView},getNewGridFileView:function(){return this.newGridFileView||(this.newGridFileView=new Genghis.Views.NewGridFile({collection:this.collection})),this.newGridFileView},show:function(){Mousetrap.bind("c",this.createDocument),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentsHeader=Backbone.View.extend({el:"section#documents > header h2",initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e,t=this.model.get("count"),n=this.model.get("page"),r=(this.model.get("pages"),this.model.get("limit")),i=this.model.get("total");if(e=""+i+" Document"+(1!=i?"s":""),i!=t){var o=(n-1)*r+1,s=Math.min((n-1)*r+t,i);e=""+o+" - "+s+" of "+e}return this.$el.html(e),this}}),Genghis.Views.KeyboardShortcuts=Backbone.View.extend({tagName:"div",template:Genghis.Templates.KeyboardShortcuts,events:{"click a.close":"hide"},initialize:function(){_.bindAll(this,"render","show","hide","toggle"),Mousetrap.bind("?",this.toggle),$("footer a.keyboard-shortcuts").click(this.show),this.render()},render:function(){return this.$el.html(this.template.render()).modal({backdrop:!0,keyboard:!0,show:!1}),this},show:function(e){e.preventDefault(),this.$el.modal("show")},hide:function(e){e.preventDefault(),this.$el.modal("hide")},toggle:function(){this.$el.modal("toggle")}}),Genghis.Views.Masthead=Backbone.View.extend({tagName:"header",attributes:{"class":"masthead"},template:Genghis.Templates.Masthead,initialize:function(){this.heading=this.options.heading,this.content=this.options.content||"",this.error=this.options.error||!1,this.epic=this.options.epic||!1,this.sticky=this.options.sticky||!1,this.render()},render:function(){return this.$el.html(this.template.render({heading:this.heading,content:this.content})).toggleClass("error",this.error).toggleClass("epic",this.epic).toggleClass("sticky",this.sticky).insertAfter("header.navbar"),this}}),Genghis.Views.Nav=Backbone.View.extend({el:".navbar nav",template:Genghis.Templates.Nav,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","navigate","navigateToServers","navigateUp"),this.baseUrl=this.options.baseUrl,this.model.bind("change",this.updateQuery),$("body").bind("click",function(){$(".dropdown-toggle, .menu").parent("li").removeClass("open")}),Mousetrap.bind("s",this.navigateToServers),Mousetrap.bind("u",this.navigateUp),this.render()},render:function(){return this.$el.html(this.template.render({baseUrl:this.baseUrl})),this.serverNavView=new Genghis.Views.NavSection({el:this.$("li.server"),model:this.model.currentServer,collection:this.model.servers}),this.databaseNavView=new Genghis.Views.NavSection({el:this.$("li.database"),model:this.model.currentDatabase,collection:this.model.databases}),this.collectionNavView=new Genghis.Views.NavSection({el:this.$("li.collection"),model:this.model.currentCollection,collection:this.model.collections}),this.searchView=new Genghis.Views.Search({model:this.model}),this.$el.append(this.searchView.render().el),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateToServers:function(e){e.preventDefault(),app.router.redirectToIndex()},navigateUp:function(e){e.preventDefault(),app.router.redirectTo(this.model.has("database")&&this.model.get("server"),this.model.has("collection")&&this.model.get("database"),(this.model.has("document")||this.model.has("query"))&&this.model.get("collection"))}}),Genghis.Views.NavSection=Backbone.View.extend({template:Genghis.Templates.NavSection,menuTemplate:Genghis.Templates.NavSectionMenu,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.updateLink,this),this.collection.bind("reset",this.renderMenu,this),this.render()},render:function(){return this.$el.html(this.template.render(this.model)),this.$(".dropdown-toggle").hoverIntent(function(e){$(e.target).parent("li").addClass("open").siblings("li").removeClass("open")
},$.noop),this},updateLink:function(){this.$("a.dropdown-toggle").text(this.model.id?this.model.id:"").attr("href",this.model.id?this.model.url:"")},renderMenu:function(){this.$("ul.dropdown-menu").html(this.menuTemplate.render({model:this.model,collection:this.collection})),this.$("ul.dropdown-menu a span").each(function(e,t){var n=$(t),r=n.text().length;r>3&&n.parent().css("padding-right",""+(r+.5)+"em")})}}),Genghis.Views.Navbar=Backbone.View.extend({el:".navbar",events:{"click a.brand":"onClickBrand"},initialize:function(){this.router=this.options.router,this.navView=new Genghis.Views.Nav({model:this.model,baseUrl:this.options.baseUrl})},onClickBrand:function(e){e.preventDefault(),this.router.navigate("",!0)}}),Genghis.Views.NewDocument=Genghis.Views.BaseNewDocument.extend({el:"#new-document",template:Genghis.Templates.NewDocument,getTextArea:function(){return this.$("#editor-new")[0]},show:function(){this.editor.setValue("{\n    \n}\n"),this.editor.setCursor({line:1,ch:4}),this.modal.modal("show")},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.closeModal,n=this.showServerError;this.collection.create(e,{wait:!0,success:function(e){t(),app.router.navigate(Genghis.Util.route(e.url()),!0)},error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}n(r||"Error creating document.")}})}}}),Genghis.Views.NewGridFile=Genghis.Views.BaseNewDocument.extend({el:"#new-grid-file",template:Genghis.Templates.NewGridFile,initialize:function(){_.bindAll(this,"handleFileInputChange","showMetadata"),Genghis.Views.BaseNewDocument.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseNewDocument.prototype.render.apply(this,arguments),this.fileInput=$('<input id="new-grid-file-input" type="file">').hide().appendTo("body"),this.currentFile=null,this.fileInput.bind("change",this.handleFileInputChange),this},getTextArea:function(){return this.$("#editor-upload")[0]},show:function(){this.fileInput.click()},handleFileInputChange:function(e){this.showMetadata(e.target.files[0])},showMetadata:function(e){this.currentFile=e,e&&(this.fileInput.val(""),this.editor.setValue(Genghis.JSON.stringify({filename:e.name,contentType:e.type||"binary/octet-stream",metadata:{}})),this.editor.setCursor({line:3,ch:15}),this.modal.modal("show"))},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){if(e.file)return this.showServerError("Unexpected property: 'file'"),void 0;var t=this.closeModal,n=this.showServerError,r=this.collection,i=this.collection.url.replace(".files/documents",".files/files"),o=new FileReader;o.onload=function(o){e.file=o.target.result,$.ajax({type:"POST",url:i,data:JSON.stringify(e),contentType:"application/json"}).success(function(e){r.add(e),t();var n=new Genghis.Models.Document(e).prettyId();app.router.navigate(Genghis.Util.route(r.url+"/"+n),!0)}).error(function(e){var t;try{t=JSON.parse(e.responseText).error}catch(r){}n(t||"Error uploading file.")})},o.readAsDataURL(this.currentFile)}}}),Genghis.Views.Pagination=Backbone.View.extend({template:Genghis.Templates.Pagination,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","urlTemplate","navigate","nextPage","prevPage"),this.model.bind("change",this.render),Mousetrap.bind("n",this.nextPage),Mousetrap.bind("p",this.prevPage)},render:function(){if(1==this.model.get("pages"))this.$el.hide();else{var e=9,t=Math.ceil(e/2),n=this.model.get("page"),r=this.model.get("pages"),i=n>t?Math.max(n-(t-3),1):1,o=r-n>t?Math.min(n+(t-3),r):r,s=o==r?Math.max(r-(e-3),1):i,a=1==i?Math.min(s+(e-3),r):o;a>=r-2&&(a=r),3>=s&&(s=1);var l=this.urlTemplate;this.$el.html(this.template.render({page:n,last:r,firstUrl:l(1),prevUrl:l(Math.max(1,n-1)),nextUrl:l(Math.min(n+1,r)),lastUrl:l(r),pageUrls:_.range(s,a+1).map(function(e){return{index:e,url:l(e),active:e===n}}),isFirst:1===n,isStart:1===s,isEnd:a>=r,isLast:n===r})).show()}return this},urlTemplate:function(e){var t=this.collection.url,n=t.split("?"),r=n.shift(),i=Genghis.Util.parseQuery(n.join("?")),o={page:e};return i.q&&(o.q=encodeURIComponent(app.selection.get("query"))),r+"?"+Genghis.Util.buildQuery(_.extend(i,o))},navigate:function(e){e.preventDefault();var t=$(e.target).attr("href");t&&app.router.navigate(Genghis.Util.route(t),!0)},nextPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.next a[href]").click())},prevPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.prev a[href]").click())}}),Genghis.Views.Search=Backbone.View.extend({tagName:"form",className:"navbar-search form-search control-group",template:Genghis.Templates.Search,events:{"keyup input#navbar-query":"handleSearchKeyup","click span.grippie":"toggleExpanded","dragmove span.grippie":"handleGrippieDrag","click button.cancel":"collapseSearch","click button.search":"findDocumentsAdvanced"},initialize:function(){_.bindAll(this,"render","updateQuery","handleSearchKeyup","findDocuments","findDocumentsAdvanced","focusSearch","blurSearch","advancedSearchToQuery","queryToAdvancedSearch","expandSearch","collapseSearch","collapseNoFocus","toggleExpanded","handleGrippieDrag"),this.model.bind("change",this.updateQuery),this.model.bind("change:collection",this.collapseNoFocus)},render:function(){this.$el.html(this.template.render({query:this.model.get("query")})),this.$el.submit(function(e){e.preventDefault()}),Mousetrap.bind("/",this.focusSearch);var e=this.$el,t=(e.find(".well"),this.expandSearch),n=this.collapseSearch;return this.$(".grippie").bind("mousedown",function(r){function i(r){var i=r.clientY+document.documentElement.scrollTop-e.offset().top;return i>=s&&a>=i&&e.height(i+"px"),e.hasClass("expanded")?s>i&&n():i>100&&t(),!1}function o(t){$(document).unbind("mousemove",i).unbind("mouseup",o),e.hasClass("expanded")||n(),t.preventDefault()}r.preventDefault();var s=30,a=Math.min($(window).height()/2,350);$(document).mousemove(i).mouseup(o)}),this},updateQuery:function(){var e=this.normalizeQuery(this.model.get("query")||this.getDocumentQuery()||"");this.$("input#navbar-query").val(e)},getDocumentQuery:function(){var e=this.model.get("document");return _.isString(e)&&"~"===e[0]&&(e=Genghis.JSON.normalize('{"_id":'+Genghis.Util.decodeDocumentId(e)+"}")),e},handleSearchKeyup:function(e){this.$el.removeClass("error"),13==e.keyCode?(e.preventDefault(),this.findDocuments($(e.target).val())):27==e.keyCode&&this.blurSearch()},findDocuments:function(e){var t=Genghis.Util.route(this.model.currentCollection.url+"/documents");if(e=e.trim(),e.match(/^([a-z\d]+)$/i))t=t+"/"+e;else{try{e=Genghis.JSON.normalize(e,!1)}catch(n){return this.$el.addClass("error"),void 0}t=t+"?"+Genghis.Util.buildQuery({q:encodeURIComponent(e)})}app.router.navigate(t,!0)},findDocumentsAdvanced:function(){this.findDocuments(this.editor.getValue()),this.collapseSearch()},focusSearch:function(e){this.$("input#navbar-query").is(":visible")?(e&&e.preventDefault(),this.$("input#navbar-query").focus()):this.editor&&this.$(".well").is(":visible")&&(e&&e.preventDefault(),this.editor.focus())},blurSearch:function(){this.$("input#navbar-query").blur(),this.updateQuery()},normalizeQuery:function(e){if(e=e.trim(),""!==e)try{e=Genghis.JSON.normalize(e,!1)}catch(t){}return e.replace(/^\{\s*\}$/,"").replace(/^\{\s*(['"]?)_id\1\s*:\s*\{\s*(['"]?)\$id\2\s*:\s*(["'])([a-z\d]+)\3\s*\}\s*\}$/,"$4").replace(/^\{\s*(['"]?)_id\1\s*:\s*(new\s+)?ObjectId\s*\(\s*(["'])([a-z\d]+)\3\s*\)\s*\}$/,"$4")},advancedSearchToQuery:function(){this.$("input#navbar-query").val(this.normalizeQuery(this.editor.getValue()))},queryToAdvancedSearch:function(){var e=this.$("input#navbar-query").val().trim();if(e.match(/^[a-z\d]+$/i)&&(e='{_id:ObjectId("'+e+'")}'),""!==e)try{e=Genghis.JSON.normalize(e,!0)}catch(t){}this.editor.setValue(e)},expandSearch:function(){if(!this.editor){var e=this.$(".search-advanced");this.editor=CodeMirror(this.$(".well")[0],_.extend({},Genghis.defaults.codeMirror,{lineNumbers:!1,extraKeys:{"Ctrl-Enter":this.findDocumentsAdvanced,"Cmd-Enter":this.findDocumentsAdvanced,Esc:this.findDocumentsAdvanced}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),this.editor.on("change",this.advancedSearchToQuery)}this.queryToAdvancedSearch(),this.$el.addClass("expanded");var t=this.editor,n=this.focusSearch;_.defer(function(){t.refresh(),n()})},collapseSearch:function(){this.collapseNoFocus(),this.focusSearch()},collapseNoFocus:function(){this.$el.removeClass("expanded").css("height","auto")},toggleExpanded:function(){this.$el.hasClass("expanded")?this.collapseSearch():(this.expandSearch(),this.$el.height(Math.floor($(window).height()/4)+"px"))},handleGrippieDrag:function(e){console.log(e)}}),Genghis.Views.ServerRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.ServerRow,destroyConfirmText:function(e){return"Remove "+e+" from the server list?<br><br>This will not affect any data, and you can add it back at any time."},destroyConfirmButton:function(e){return"<strong>Yes</strong>, remove "+e+" from server list"}}),Genghis.Views.Servers=Genghis.Views.BaseSection.extend({el:"section#servers",template:Genghis.Templates.Servers,rowView:Genghis.Views.ServerRow,render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),$(".help",this.addForm).tooltip(),this},updateTitle:function(){},formatTitle:function(){return"Servers"}}),Genghis.Router=function(){function e(){var e=Array.prototype.slice.call(arguments);document.title=e.length?"Genghis \u2014 "+e.join(" \u203a "):"Genghis"}var t=encodeURIComponent;return Backbone.Router.extend({routes:{"":"index",servers:"redirectToIndex","servers/:server":"server","servers/:server/databases":"redirectToServer","servers/:server/databases/:database":"database","servers/:server/databases/:database/collections":"redirectToDatabase","servers/:server/databases/:database/collections/:collection":"collection","servers/:server/databases/:database/collections/:collection/documents":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents?*query":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents/:documentId":"document","*path":"notFound"},index:function(){e(),app.selection.select(),app.showSection("servers")},redirectToIndex:function(){this.navigate("",!0)},server:function(t){e(t),app.selection.select(t),app.showSection("databases")},redirectToServer:function(e){this.navigate("servers/"+t(e),!0)},database:function(t,n){e(t,n),app.selection.select(t,n),app.showSection("collections")},redirectToDatabase:function(e,n){this.navigate("servers/"+t(e)+"/databases/"+t(n),!0)},collection:function(t,n,r){return window.location.search?this.collectionQueryOrRedirect(t,n,r):(e(t,n,r),app.selection.select(t,n,r),app.showSection("documents"),void 0)},redirectToCollection:function(e,n,r){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r),!0)},collectionQueryOrRedirect:function(e,t,n){return window.location.search?this.collectionQuery(e,t,n,window.location.search.substr(1)):(this.redirectToCollection(e,t,n),void 0)},collectionQuery:function(t,n,r,i){e(t,n,r,"Query results");var o=Genghis.Util.parseQuery(i);app.selection.select(t,n,r,null,o.q,o.page),app.showSection("documents")},redirectToQuery:function(e,n,r,i){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r)+"/documents?"+Genghis.Util.buildQuery({q:t(i)}),!0)},document:function(t,n,r,i){e(t,n,r,Genghis.Util.decodeDocumentId(i)),app.selection.select(t,n,r,i),app.showSection("document")},redirectToDocument:function(e,t,n,r){var i=encodeURIComponent;this.navigate("servers/"+i(e)+"/databases/"+i(t)+"/collections/"+i(n)+"/documents/"+i(r),!0)},redirectTo:function(e,t,n,r,i){return e?t?n?r||i?i?this.redirectToQuery(e,t,n,i):this.redirectToDocument(e,t,n,r):this.redirectToCollection(e,t,n):this.redirectToDatabase(e,t):this.redirectToServer(e):this.redirectToIndex()},notFound:function(){e("404: Not Found"),app.showSection(),app.showMasthead("404: Not Found","<p>If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again.</p>",{error:!0,epic:!0})}})}();

